4
在佈局和尺寸政策方面,我從來沒有太好過,所以這可能是一個簡單的答案,但是這裏有。如何讓QWidget擴展到QTabWidget中的整個選項卡?
當我將一個新選項卡添加到QTabWIdget並將該小部件設置爲QSplitter時,分離器將使用給定的全部空間量。但是,當我將一個QSplitter放在QWidget中,並使用QWidget添加一個選項卡時,它不會使用給定空間 - 僅限於分隔符大小。
我想遠離QLayout,因爲我在分割器中有所有必需的小部件。只需讓我的QWidget使用選項卡中的所有空間(這將允許QSplitter使用QWIdget中的所有空間)就是我所需要的。
我在下面構建了一個示例,顯示比較以及結果。很長的問題 - 我怎麼能得到場景一(在「選項卡一」中)出現像場景二(「選項卡二」),仍然使用Spliiter的父QWidget?
ui->setupUi(this);
QTabWidget* pTab = new QTabWidget(this);
this->setCentralWidget(pTab);
//Splitter belongs to a QWidget, which belongs to the Tab. Does not use all space
QWidget* pWidget = new QWidget(this);
QSplitter* pSplitter = new QSplitter(pWidget);
QListWidget* pList = new QListWidget(this);
QListWidget* pList2 = new QListWidget(this);
pSplitter->addWidget(pList);
pSplitter->addWidget(pList2);
pTab->addTab(pWidget, "Tab One");
//Splitter belongs to the Tab. Uses all space
QListWidget* pList3 = new QListWidget(this);
QListWidget* pList4 = new QListWidget(this);
QSplitter* pSplitter2 = new QSplitter(this);
pSplitter2->addWidget(pList3);
pSplitter2->addWidget(pList4);
pTab->addTab(pSplitter2, "Tab Two");
你是一個生命的救星!謝謝! – giraffee 2012-08-11 16:17:13