从Qt中的组合框中获取值以进行串行连接

时间:2016-11-28 08:24:55

标签: c++ qt serial-port qcombobox

每当我尝试建立一个连接时,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);

1 个答案:

答案 0 :(得分:0)

QComboBox::currentData()返回您在将当前所选项目添加到窗口小部件时提供的QVariant。要将组合框选择中的用户数据作为串行端口波特率,请使用

serial.setBaudRate(ui->baudBox->currentData().toInt());