ui指针遇到问题
问题一:
现象:如图所示,报错是因为在 Ui::art2313a
类中没有名为 textEdit
的成员,却试图通过 ui->textEdit
来调用 showMessage
方法。
解决方法:选择正确的用于显示状态信息的控件(比如如果是用 QLabel
或者其他文本显示控件,就替换为对应的控件),或者如果是想使用状态栏显示,就比如说我选择使用TextEdit这个控件,则对应的参数也要改为相应改为 ui->textEdit->setText(status)
。我把这个控件命名为状态。比如:
connect(this, &art2313a::opStatus, this, [this](const QString &status) {ui->zhuangtai->setText(status);
与此类似的还有(豆包回答,刚好补充一下):
✅ 1. QLabel(标签)
用途:显示文本、图片或动画(如状态提示、结果输出)。
常用方法/属性:
setText(const QString &text)
:设置文本内容。setPixmap(const QPixmap &pixmap)
:设置图片。setAlignment(Qt::Alignment)
:设置对齐方式。setWordWrap(bool)
:设置是否自动换行。
✅ 2. QTextBrowser(文本浏览器)
用途:显示富文本或HTML格式的内容,支持超链接。
常用方法:
setHtml(const QString &html)
:设置HTML内容。setPlainText(const QString &text)
:设置纯文本。append(const QString &text)
:追加文本。
✅ 3. QLCDNumber(LCD数字显示)
用途:显示数字(如计数器、计时器)。
常用方法:
display(int num)
或display(double num)
:显示数字。setDigitCount(int)
:设置显示位数。setMode(QLCDNumber::Mode)
:设置显示模式(十六进制、十进制等)。
✅ 4. QProgressBar(进度条)
用途:显示任务进度。
常用方法:
setValue(int value)
:设置当前值。setRange(int min, int max)
:设置范围。setFormat(const QString &format)
:设置显示格式(如百分比)。
✅ 5. QStatusBar(状态栏)
用途:在主窗口底部显示状态信息(通常用于应用程序状态)。
常用方法:
showMessage(const QString &message, int timeout = 0)
:显示临时消息。addWidget(QWidget *widget)
:添加自定义控件(如标签、进度条)。addPermanentWidget(QWidget *widget)
:添加永久控件(右端)。
✅ 6. QLineEdit(单行文本框)
用途:可编辑的单行文本,也可用于显示状态(如只读模式)。
常用方法:
setText(const QString &text)
:设置文本。setReadOnly(true)
:设置为只读。setPlaceholderText(const QString &text)
:设置占位符提示。
✅ 7. QPlainTextEdit / QTextEdit(多行文本框)
用途:显示多行文本或日志信息。
常用方法:
appendPlainText(const QString &text)
(QPlainTextEdit)append(const QString &text)
(QTextEdit)setReadOnly(true)
:设置为只读。
✅ 8. QGraphicsView(图形视图)
用途:显示复杂的图形或自定义绘制内容(如图表、状态图)。
常用方法:
通过
setScene(QGraphicsScene *scene)
设置场景。
✅ 9. QCalendarWidget(日历)
用途:显示日期信息。
常用方法:
setSelectedDate(const QDate &date)
:设置选中日期。
✅ 10. QQuickWidget(用于显示 QML 界面)
用途:嵌入 QML 界面,可用于显示动态状态界面。
🧩 其他可用于状态显示的控件:
QCheckBox / QRadioButton:通过勾选状态表示状态。
QTableWidget / QTreeWidget:显示结构化状态信息。
QDockWidget:可悬浮面板,用于显示辅助状态信息。