我正在尝试编写一个简单的程序来测试串行端口,但无法让 QSerialPort 工作。我从来没有收到来自 QSerialPort 对象的信号。我收到 3 个运行时警告/错误,我认为这可能与它有关。
错误是:
QApplication::qAppName: Please instantiate the Qapplication object first
QSocketNotifier: Can only be used with threads started with QThread
QSocketNotifier: Can only be used with threads started with QThread
下面的代码片段是我可以提供的用于重新创建错误的最小示例,它没有显示连接信号,但我认为这些错误是我看不到它们的原因。如果我不调用 open 函数,则不会发生任何错误。
#include <QtGui/QApplication>
#include <QSerialPort>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
PowerBoardGUI w;
w.show();
QSerialPort* serial = new QSerialPort();
serial->setPortName("/dev/ttyS1");
serial->setBaudRate(QSerialPort::Baud9600);
bool isOpen = serial->open(QIODevice::ReadWrite);
serial->close();
delete serial;
return a.exec();
}
测试系统是Redhat 5.6。QT 4.7.4 的静态版本。以及最新版本的 QSerialPort(今天从 GIT 构建)。