繁体   English   中英

Qt QLabel默认文本

[英]Qt QLabel default text

我的代码很简单:

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

您应该阅读Qt文档中的一些教程。 您正在将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更改标签中的文本。

那是因为你们两个

 lineEdit = new QLineEdit();
 label = new QLabel("");

与您在ui中创建的代码不同。 您正在定义两个新的小部件,而您可能应该参考前面的小部件:

 ui->lineEdit->clear();
 ui->label->clear();
 connect(ui->line....
 //etc...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM