使用Qt中的setText将portname写入标签

时间:2016-07-20 12:09:22

标签: c++ qt user-interface serial-port qtserialport

我想尝试在QT中显示portname信息。代码在这里:

void MainWindow::on_pushButton_clicked()
{
    foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
    {
        qDebug() << "Name : " << info.portName();

        // Example use QSerialPort
        QSerialPort serial;
        serial.setPort(info);
        if (serial.open(QIODevice::ReadWrite))
            serial.close();
    }

    ui->label->setText(info.portName());
}

编译此代码时出现此错误:

  

info未在此范围内声明

那么,我可以做些什么来向portname显示label信息?

1 个答案:

答案 0 :(得分:0)

我犯了一个很大的错误。分享这个问题后我才意识到。

真正的代码必须是这样的:

void MainWindow::on_pushButton_clicked()
{
  foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
  {
        qDebug() << "Name : " << info.portName();
        qDebug() << "Description : " << info.description();
        qDebug() << "Manufacturer: " << info.manufacturer();

        // Example use QSerialPort
        QSerialPort serial;
        serial.setPort(info);
        if (serial.open(QIODevice::ReadWrite))
            serial.close();
   ui->label->setText(info.portName());
}

这意味着ui->label->setText(info.portName());部分必须在括号中。