【发布时间】:2014-04-23 18:16:27
【问题描述】:
所以我有一个我在 QT creator 中设计的 GUI。
因为我必须添加一个 createWindowContainer 小部件,所以我必须通过 c++ 在我的代码中添加一个小部件。我正在添加一个简单的标签来测试最好的方法。不幸的是,尽管程序可以编译,但没有显示小部件。
实际上显示了我的主窗口,没有所需的小部件。
所以我有以下几行:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->gridLayout->addWidget(new QLabel("test"),0,0);
// MainWindow does other stuff
ui->setupUi(this);
根据我的阅读,这应该是正确的。我究竟做错了什么?有什么好的调试方法吗?
编辑:发现问题。添加了第二个 ui->setupUi 以反映导致问题的错误。如果您调用它两次,它似乎会删除您在第一次调用后添加的任何小部件。
【问题讨论】:
-
哪个没有显示,标签还是你的小部件?
-
我正在添加一个标签小部件。它没有被显示。它应该显示一个标有“测试”的标签。假设我可以将任何小部件放在显示 new Qlabel("test") 的位置 - 对吧?
-
您的代码(到目前为止)没问题。显示更多代码。一定有其他错误。顺便说一句:这是 Qt,不是 QT。
-
是的,你这部分的代码绝对是对的。理论上应该显示出来。
-
发现问题。我已经调用了 ui->setupUi(this) 两次。
标签: c++ qt qt-creator qwidget qtgui