使用Qt GUI从所有可用的串行端口中进行选择

时间:2015-03-09 09:31:42

标签: c++ qt serial-port qtgui

我找不到我的问题的确定答案所以我决定在这个网站上发布我的第一个问题。我对编程很新,并且已经使用Qt几个月了。 我的代码通过串口与微控制器通信,但可用端口因PC而异。我显示了代码可用的端口数量;

qDebug() << "Number of serial ports:" << QSerialPortInfo::availablePorts().count(); 

我的问题是:如何显示所有可用端口的名称,例如"COM 10, 17. 22, etc",然后在我的GUI中显示它们。我最终希望做的是有一个可以用可用端口动态填充的组合框,我现在有一个在几个端口之间切换,但这些是与特定计算机相对应的固定端口。

2 个答案:

答案 0 :(得分:4)

尝试这样的事情:

#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();
}

代码非常明显。

答案 1 :(得分:1)

在qt中心找到相关答案,示例代码;

foreach (const QSerialPortInfo &serialPortInfo, QSerialPortInfo::availablePorts())
    {
    ui->comboBox->addItem(serialPortInfo.portName());
    }