每当我尝试建立一个连接时,Qt都有这个问题它从组合框中实际上从未实际获取数据(例如端口名称和波特率),显然这是因为我没有很好地链接它们。到目前为止,我就是这样做的,而且,它不起作用......
void MainWindow::openSerialPort()
{
serial.setPortName(ui->portBox->itemData(ui->portBox->currentIndex()));
printf("%s \n", ui->portBox->itemData(ui->portBox->currentIndex()));
printf("\n ------------ \n");
serial.setBaudRate(ui->baudBox->currentIndex());
printf("%d \n", ui->baudBox->itemData(ui->baudBox->currentIndex()));
// serial.setDataBits();
...
}
有什么建议吗?
次要问题:我是否正确地将这些项目添加到组合框?
ui->baudBox->addItem(QStringLiteral("38400"), QSerialPort::Baud38400);
ui->baudBox->addItem(QStringLiteral("57600"), QSerialPort::Baud57600);
ui->baudBox->addItem(QStringLiteral("115200"), QSerialPort::Baud115200);
答案 0 :(得分:0)
QComboBox::currentData()返回您在将当前所选项目添加到窗口小部件时提供的QVariant。要将组合框选择中的用户数据作为串行端口波特率,请使用
serial.setBaudRate(ui->baudBox->currentData().toInt());