[英]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.