使用 Qt GUI 从所有可用的串行端口中进行选择
Posted
技术标签:
【中文标题】使用 Qt GUI 从所有可用的串行端口中进行选择【英文标题】:Selecting from all available serial ports using Qt GUI 【发布时间】:2015-03-09 09:31:41 【问题描述】:我找不到我的问题的决定性答案,所以我决定在这个网站上发布我的第一个问题。我对编程相当陌生,并且已经使用 Qt 几个月了。 我的代码通过串行端口与微控制器通信,但是可用端口因电脑而异。我正在显示代码可用的端口数;
qDebug() << "Number of serial ports:" << QSerialPortInfo::availablePorts().count();
我的问题是:如何显示所有可用端口的名称,例如"COM 10, 17. 22, etc"
,然后在我的 GUI 中显示它们。我最终希望做的是有一个可以动态填充可用端口的组合框,我现在有一个可以在几个端口之间切换的组合框,但这些是与特定计算机相对应的固定端口。
【问题讨论】:
【参考方案1】:试试这样的:
#include <QApplication>
#include <QWindow>
#include <QSerialPortInfo>
#include <QComboBox>
int main(int argc, char *argv[])
QApplication a(argc, argv);
QWidget w;
w.resize(200,200);
w.show();
QComboBox box(&w);
Q_FOREACH(QSerialPortInfo port, QSerialPortInfo::availablePorts())
box.addItem(port.portName());
box.move(100 - box.width() / 2,100 - box.height() / 2);
box.show();
return a.exec();
代码非常不言自明。
【讨论】:
感谢您的回答,我刚刚在回答中发布了一个链接,解决了我的问题【参考方案2】:在qt中心找到相关答案,示例代码;
foreach (const QSerialPortInfo &serialPortInfo, QSerialPortInfo::availablePorts())
ui->comboBox->addItem(serialPortInfo.portName());
【讨论】:
能否总结一下内容? *** 不喜欢仅链接的答案。他们遭受链接腐烂。以上是关于使用 Qt GUI 从所有可用的串行端口中进行选择的主要内容,如果未能解决你的问题,请参考以下文章