我想知道qt中 serial::~serial() delete ui; 这个函数是干啥用的?qt菜鸟,求大神详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想知道qt中 serial::~serial() delete ui; 这个函数是干啥用的?qt菜鸟,求大神详解相关的知识,希望对你有一定的参考价值。
析构吗?把谁析构了?
析构函数,在析构的时候delete掉ui,ui是系统根据界面ui文件自动生成的ui类创建的对象,作为窗口serial类的成员,可能因为在UI命名控件继承的时候没有加OBJECT宏,所以需要手动delete,猜测可能是这样。 参考技术A Qt4:第三方串口接口类;Win_QextSerialPort*myCom;数据:QByteArraytemp=myCom->readAll();长度:temp.length();Qt5:QSerialPort*my_serialport=newQSerialPort;读取数据:QByteArrayxxx=my_serialport->readAll();长度:xx.size();数据:xx.data();至于说怎么保存到不同的QString这就是解析的问题,你可以随意发挥,反正就是将你得到的数据进行识别、类型转换、存储而已。追问是我太菜了吗?没看出有啥关系啊,更晕了。在这个函数里,它是把ui界面析构了吗?
Qt QSerialport 未插入设备未关闭
【中文标题】Qt QSerialport 未插入设备未关闭【英文标题】:Qt QSerialport unpluged device not close 【发布时间】:2018-10-28 06:15:37 【问题描述】:QSerialPort
无法关闭 rasbian 系统中未插入的设备。任何方法关闭并重新连接端口。这段代码可以工作,但我很快拔掉插头并插入它不起作用。我认为连接插头时串行不会中断:
serial->close();
serial = new QSerialPort(this);
serial->setPortName("/dev/ttyUSB0");
serial->setBaudRate(QSerialPort::Baud115200);
serial->setDataBits(QSerialPort::Data8);
serial->setParity(QSerialPort::NoParity);
serial->setStopBits(QSerialPort::OneStop);
serial->setFlowControl(QSerialPort::NoFlowControl);
if(serial->open(QIODevice::ReadWrite))
qDebug() << "Hata yok";
else
qDebug() << "Hata var";
【问题讨论】:
以文字而非图片的形式提供您的代码 嗨,欢迎来到堆栈溢出。请参阅How to Ask 链接以获取有关如何提出问题并相应更新您的问题的更多详细信息。 【参考方案1】:拔掉插头时可能会发出error
SIGNAL
,所以连接error
SIGNAL
> 到 SLOT
来处理它,如下所示:
QObject::connect(serial, SIGNAL(error(QSerialPort::SerialPortError)), this,
SLOT(handleError(QSerialPort::SerialPortError)));
void Widget::handleError(QSerialPort::SerialPortError error)
if (error == QSerialPort::ResourceError)
QMessageBox::critical(this, tr("Critical Error"), serial->errorString());
serial->close();
【讨论】:
以上是关于我想知道qt中 serial::~serial() delete ui; 这个函数是干啥用的?qt菜鸟,求大神详解的主要内容,如果未能解决你的问题,请参考以下文章
Qt Serial Communictaion - 通过 Putty 与 stm32f0 板通信