在 Qt 中,QLineEdit
是一个用于输入文本的控件,可以通过信号和槽机制来响应用户的输入。以下是如何使用 QLineEdit
激发信号并连接到槽的示例代码。
示例代码
#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QLineEdit>
#include <QLabel>
class MyWidget : public QWidget {
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent) {
QVBoxLayout *layout = new QVBoxLayout(this);
lineEdit = new QLineEdit(this);
label = new QLabel("请输入文本", this);
layout->addWidget(lineEdit);
layout->addWidget(label);
// 连接信号和槽
connect(lineEdit, &QLineEdit::textChanged, this, &MyWidget::onTextChanged);
}
private slots:
void onTextChanged(const QString &text) {
label->setText(text); // 更新标签显示文本
}
private:
QLineEdit *lineEdit;
QLabel *label;
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWidget window;
window.setWindowTitle("QLineEdit 信号与槽示例");
window.resize(300, 100);
window.show();
return app.exec();
}
#include "main.moc"
说明
- 创建控件:我们创建了一个
QLineEdit
和一个QLabel
,用来显示用户输入的文本。 - 布局:使用
QVBoxLayout
将它们垂直排列。 - 信号与槽连接:
- 使用
connect()
函数将lineEdit
的textChanged
信号连接到自定义的槽函数onTextChanged()
。 - 每当用户在
QLineEdit
中输入文本时,都会触发该信号,并调用对应的槽函数。
- 使用
- 更新标签:在槽函数中,我们将输入框中的文本设置为标签的文本,这样可以实时显示用户输入。
编译和运行
确保你的 Qt 环境已正确配置,然后将上述代码保存为 .cpp
文件,并使用 Qt Creator 或命令行工具编译和运行。如果一切正常,你将看到一个简单的窗口,当你在输入框中输入文本时,下面的标签会实时更新。
内容由零声教学AI助手提供,问题来源于学员提问