我正在寻找一个超级简单的例子,似乎找不到一个。我有一个MainWindow。按下按钮时,我想创建一个在MainWindow布局中打开的新窗口,成为主窗口的一部分。
我有一个代码,当按下一个按钮来调用这个插槽时......当它被调用时我的QLabel出现了,但是我的QWidget没有
QWidget *test = new QWidget();
test->setGeometry(QRect(100,100,100,100));
layout->addWidget(test,0,0)
//Operation Mode
QLabel *operationalModeLabel1 = new QLabel("TEST");
layout->addWidget(operationalModeLabel1,2,1);
答案 0 :(得分:1)
“缺乏例子”的原因是你认为错了。您所描述的内容始终是通过每个使用布局的Qt示例完成的!我是认真的。将小部件添加到布局时,无关紧要。 “现在”添加小部件与“稍后”添加小部件没有什么不可思议的。
想想问题的标题:它使毫无意义。必须将所有小部件添加到已存在的布局中! 根据定义,不能少。如果没有布局,你怎么能添加一个小部件呢?
你的代码错了,就是这样。在要由布局管理的窗口小部件上设置几何图形总是毫无意义的。只要将其添加到布局中,布局就会更改几何图形。
由于您在布局中添加了一个空小部件,因此您很可能无法看到它。这就是标签显示的原因 - 它不是一个空的小部件。
如果您想要一个具有固定大小的小部件,为了更容易注意,只需在其上设置固定大小即可。更好的是,让它变红,以便它脱颖而出。
QWidget * test = new QWidget();
test->setStyleSheet("QWidget { background-color: red }");
test->setFixedSize(100, 100);
layout->addWidget(test, 0, 0);