![](/img/trans.png)
[英]Qt 5 and QProcess redirect stdout with signal/slot readyRead
[英]Signal readyRead() does not execute slot
我的設備比較大(通過COM端口連接了兩台計算機),並且必須通過QSerialPort
使它工作。 這個想法很簡單:數據將通過每個COM端口從一個comp發送到另一個comp。 發射器工作正常,這已通過輔助軟件檢查,我在接收數據時遇到問題。 我正在通過QSerialPort
進行如下操作:
首先,我設置端口:
QSerialPort *serialport = new QSerialPort();
serialport->open(QIODevice::ReadOnly);
serialport->setPortName("COM1");
serialport->setBaudRate(QSerialPort::Baud19200);
serialport->setDataBits(QSerialPort::Data8);
serialport->setParity(QSerialPort::NoParity);
然后我准備捕獲這樣的數據:
connect(serialport,SIGNAL(readyRead()),this, SLOT(change_gear()) );
在插槽change_gear中,我只剩下以下內容:qDebug()<<“已接收到數據”,
但是此插槽從未執行過! 因此,我只是不明白這里出了什么問題以及為什么我無法以這種簡單的方式從COM端口讀取數據。
操作系統-Windows 8,Qt 5.8.0 MinGW 32
這樣嘗試
QSerialPort *serialport = new QSerialPort();
serialport->setPortName("COM1");
serialport->setBaudRate(QSerialPort::Baud19200);
serialport->setDataBits(QSerialPort::Data8);
serialport->setParity(QSerialPort::NoParity);
connect(serialport,SIGNAL(readyRead()),this, SLOT(change_gear()) );
serialport->open(QIODevice::ReadOnly);
配置端口並將其信號連接到插槽后打開
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.