在 Qt 中使用 setText 将端口名写入标签

Posted

技术标签:

【中文标题】在 Qt 中使用 setText 将端口名写入标签【英文标题】:Write portname to a label using setText in Qt 【发布时间】:2016-07-20 12:09:22 【问题描述】:

我想尝试在 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 未在此范围内声明

那么,我该怎么做才能向label 显示portname 信息?

【问题讨论】:

【参考方案1】:

我犯了一个非常大的错误。分享这个问题后,我意识到了。

真正的代码一定是这样的:

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-&gt;label-&gt;setText(info.portName());部分必须在括号中。

【讨论】:

以上是关于在 Qt 中使用 setText 将端口名写入标签的主要内容,如果未能解决你的问题,请参考以下文章

如何在qt标签中显示em破折号字符?

时序问题:QT 写入串行端口,然后读取

使用 QImage::setText() 将二进制数据存储在 PNG 文件中

Qt入门系列开发教程基础控件篇QLabel文本标签

Qt中遇到QLineEdit设置文本setText时程序崩溃

Qt 更改指定的表头标签