我的代码非常简单:
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{
lineEdit = new QLineEdit();
label = new QLabel("");
connect(lineEdit, SIGNAL(textChanged(QString)), label, SLOT(setText(QString)));
ui->setupUi(this);
}
我编译了它,没有错误或警告。
但是当我运行它时,UI就像这样:
为什么QLabel
的默认文字为TextLabel
?
答案 0 :(得分:1)
您应该阅读Qt docs的一些教程。您正在将QtDesigner ui与手动创建小部件混合在一起。标签上的默认文本来自您的ui文件。使用ui文件时,也无需创建标签/行编辑。让他们从ui课程中获得胜利。因此,如果您将ui文件恢复正常,那么您可以执行以下操作:
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{
ui->setupUi(this);
connect(ui->lineEdit, SIGNAL(textChanged(QString)), ui->label, SLOT(setText(QString)));
}
也可以通过双击Qt Designer更改标签中的文字。
答案 1 :(得分:0)
那是因为你的
lineEdit = new QLineEdit();
label = new QLabel("");
与您在ui中创建的不同。您正在定义两个新的小部件,而您应该参考之前的小部件:
ui->lineEdit->clear();
ui->label->clear();
connect(ui->line....
//etc...