QT一些笔记

    xiaoxiao2025-10-15  1

    网格布局:

    void QGridLayout::addWidget(QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = 0)

    6个参数表示控件名,行,列,占用行数,占用列数,对齐方式

    线程类QThread

    创建继承QThread的线程类要包含一个virtual run()函数(可重载),因为QThread都是从这个函数开始执行。

    而线程启动则是通过void QThread::start()函数。线程启动后会发出started信号,然后就执行run.

    QMutex类互斥量提供的是线程之间的访问顺序化,用在串行线程的

    QMutex的目的是保护一个对象、数据结构或者代码段,所以同一时间只有一个线程可以访问它。

    void lock();用来锁一个互斥量,当拥有这个互斥量后,其他线程就不能再用,只能等待当这个互斥量被释放后,其他线程才可以获得这个锁。 void tryLock();试着锁一个互斥量,当获得锁后,返回true;如果其他线程已经锁住这个互斥量,则返回false。 void unlock();释放互斥锁,使得其他正在等待的线程就可以使用这个互斥量了。

    QT串口

    Qserialport

    该类提供访问串口的功能。你可以使用QSerialPortInfo帮助类获取系统上可用的串口的信息,可以枚举系统上存在的所有串口。通过该类你可以获取串口的正确名称。你可以传递一个该类的对象作为setPort()或者setPortName()方法的参数指定想要访问的串口设备。  

     serial.close();             serial.setPortName(currentPortName);             if (!serial.open(QIODevice::ReadWrite)) {                 emit error(tr("Can't open %1, error code %2")                            .arg(portName).arg(serial.error()));                 return;             }  if (serial.waitForReadyRead(currentWaitTimeout)) { //! [7] //! [8]             // read request(接收)             QByteArray requestData = serial.readAll();             while (serial.waitForReadyRead(10))                 requestData += serial.readAll();

    waitForReadyRead//当有可读数据的时候返回true,否侧超时返回false

    // write response(发送)            /* QByteArray responseData = currentRespone.toLocal8Bit();//             serial.write(responseData);             if (serial.waitForBytesWritten(waitTimeout)) {                 QString request(requestData); //! [12]                 emit this->request(request); //! [10] //! [11] //! [12]             } else {                 emit timeout(tr("Wait write response timeout %1")                              .arg(QTime::currentTime().toString()));             }*/

    QT的信号可以直接使用emit在发送。

    QT模态对话框:DIALOG类exec();, 或者setModal(true);然后show(),而不用前面两种方法直接show()的是非模态对话框;

    转载请注明原文地址: https://ju.6miu.com/read-1303189.html
    最新回复(0)