簡體   English   中英

如何將小部件添加到預先存在的QLayout?

[英]How to add a widget to a pre-existing QLayout?

我正在尋找一個超級簡單的示例,似乎找不到一個。 我有一個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);

“缺乏示例”的原因是您認為它是錯誤的。 您描述的內容始終通過使用布局的每個Qt示例來完成 我是認真的。 將小部件添加到布局中並不重要 “現在”添加小部件與“以后”添加小部件沒有什么魔術。

只是想想問題的標題: 沒有任何意義 必須將所有小部件添加到已經存在的布局中! 根據定義 ,不少。 如果沒有布局,如何為它添加小部件?

您的代碼是錯誤的,僅此而已。 在要由布局管理的小部件上設置幾何形狀總是毫無意義的。 一旦將其添加到布局中,布局將更改幾何。

由於您要在布局中添加一個空窗口小部件,因此很可能看不到它。 這就是為什么顯示標簽的原因-它不是一個空的小部件。

如果您希望窗口小部件具有固定的大小,則為了使其更容易注意到,只需在其上設置固定的大小即可。 更好的是,使其變紅以使其突出。

QWidget * test = new QWidget();
test->setStyleSheet("QWidget { background-color: red }");
test->setFixedSize(100, 100);
layout->addWidget(test, 0, 0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM