簡體   English   中英

如何管理 QDockWidget 上的布局?

[英]How to manage layout on QDockWidget?

我開始使用 Qt,我有一個學校項目。 我想制作一個界面來讀取空間數據庫並顯示它們。 到目前為止,我可以將表格顯示在列表中,而我的實際目標是在雙擊時顯示 object 的詳細信息。

為此,我嘗試在雙擊 object 時打開第二個擴展塢,並嘗試在第二個擴展塢內進行布局以正確顯示詳細信息。

程序成功打開了一個新的dock,但是widget太小了,全部擠在dock的左上角:錯誤圖片:

錯誤的圖片

我試圖不使用布局,而只使用帶有 QDockWidget 的 setWidget,但它只顯示最后一個小部件。

這是我的布局代碼:

dock1 = new QDockWidget(tr("Caractéristiques de l'objet : "), this);
dock1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

QVBoxLayout* layout = new QVBoxLayout();
Nom_Objets = new QLineEdit(dock1);
layout->addWidget(Nom_Objets);
//dock1->setWidget(Nom_Objets);
Categorie_Objets = new QLineEdit(dock1);
layout->addWidget(Categorie_Objets);
//dock1->setWidget(Categorie_Objets);
Description_Objets = new QTextEdit(dock1);
layout->addWidget(Description_Objets);
//dock1->setWidget(Description_Objets);
setLayout(layout); 
addDockWidget(Qt::RightDockWidgetArea, dock1);

如果你想向一個 QDockWidget 添加幾個小部件,那么你必須使用一個 QWidget 作為容器:

dock1 = new QDockWidget(tr("Caractéristiques de l'objet : "), this);
dock1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
addDockWidget(Qt::RightDockWidgetArea, dock1);

QWidget* container = new QWidget;
dock1->setWidget(container);
QVBoxLayout* layout = new QVBoxLayout(container);

Nom_Objets = new QLineEdit;
Categorie_Objets = new QLineEdit;
Description_Objets = new QTextEdit;

layout->addWidget(Nom_Objets);
layout->addWidget(Categorie_Objets);
layout->addWidget(Description_Objets);

暫無
暫無

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

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