【发布时间】:2021-05-02 11:40:03
【问题描述】:
我正在使用 Qt VS 工具在 Visual Studio 中使用 Qt5.12.10。
我在 Qt Designer 中添加了一个 QTextEdit 小部件,如下图所示。
我还将一个按钮连接到一个名为“slot2()”的自定义插槽,并且我想根据用户在按下“提交”按钮时在 textBox 中键入的内容来编辑文本框中的文本。我用于此任务的代码如下:
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_QtWidgetsApplication1.h"
class QtWidgetsApplication1 : public QMainWindow
{
Q_OBJECT
public:
QtWidgetsApplication1(QWidget *parent = Q_NULLPTR);
public slots:
void slot1() {
exit(1);
};
void slot2() {
if (ui.textEdit.toPlainText() == "hello")
ui.textEdit.setText("hello there!");
else
ui->centralWidget->textEdit.setText("sorry, I don't understand :(");
}
private:
Ui::QtWidgetsApplication1Class ui;
};
这段代码给了我一个编译错误,说“textEdit”不是 Ui::QtWidgetsApplication1Class 的成员。我也尝试过更改 slot2() 的代码:
void slot2() {
if (ui.centralWidget->textEdit.toPlainText() == "hello")
ui.centralWidget->textEdit.setText("hello there!");
else
ui.centralWidget->textEdit.setText("sorry, I don't understand :(");
}
但这也没有解决问题,说“textEdit 不是 'QWidget' 的成员”。我该怎么办?
【问题讨论】:
标签: c++ qt signals-slots qt-designer