使用Qt GUI从所有可用的串行端口中进行选择
Selecting from all available serial ports using Qt GUI
我找不到我的问题的决定性答案,所以我决定在这个网站上发布我的第一个问题。我对编程相当陌生,并且已经使用Qt几个月了。我的代码通过串行端口与微控制器通信,但是可用端口因PC而异。我正在显示代码中可用的端口数量;
qDebug() << "Number of serial ports:" << QSerialPortInfo::availablePorts().count();
我的问题是:如何显示所有可用端口的名称,例如"COM 10, 17. 22, etc"
,然后在我的 GUI 中显示它们。我最终希望做的是拥有一个可以动态填充可用端口的组合框,我目前有一个在几个端口之间切换的组合框,但这些是对应于特定计算机的固定端口。
尝试这样的事情:
#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();
}
代码非常不言自明。
在qt中心找到相关答案,示例代码;
foreach (const QSerialPortInfo &serialPortInfo, QSerialPortInfo::availablePorts())
{
ui->comboBox->addItem(serialPortInfo.portName());
}
相关文章:
- Qt Q串行端口未编程设备未关闭
- 在 linux c++ 中没有通过串行端口发送的数据
- 检查串行端口Linux中是否有传入数据(cbInQue for linux)
- 在不传输的情况下更改 Win32 中的串行端口波特率
- 增强 ASIO 和串行端口异步读取
- 串行端口写入究竟如何从缓冲区实际写入数据?
- 如何将参数这些串行端口传递到函数中
- 从 C/C++ 访问 Android 中的串行端口
- Qt两个串行端口发送和接收
- 通过串行端口从GPS传感器读取
- 提升 asio 串行端口"end of file"
- 通过串行端口发送多个值
- 与QSerialPort配合使用的串行端口仿真
- 如何通过boost::asio和shared_ptr创建串行端口
- 串行端口编码
- 使用来自串行端口的字符串数据来操作振镜扫描仪在更高的速度下会出错
- 写入和读取十六进制 TRAM QT 串行端口
- Qt串行端口数据接收
- Qt modbus 串行端口流量控制处理
- C++输出与Python不同的消息(从串行端口读取)