我想知道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菜鸟,求大神详解的主要内容,如果未能解决你的问题,请参考以下文章

Arm Qt 实战一:简单使用Arm设备的串口

Qt Serial Communictaion - 通过 Putty 与 stm32f0 板通信

Serial port

Qt QSerialport 未插入设备未关闭

哪位大侠知道win7-64的gadget serial的驱动怎么安装啊

Qt 串行端口错误 - 未读取数据