Qt QLabel默认文本

时间:2012-09-07 14:19:26

标签: c++ qt qlabel

我的代码非常简单:

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就像这样:

enter image description here

为什么QLabel的默认文字为TextLabel

2 个答案:

答案 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...