在布局和尺寸政策方面,我从来都不是很好,所以这可能是一个简单的答案,但这里就是这样。
当我向 QTabWIdget 添加新选项卡并将小部件设置为 QSplitter 时,拆分器将使用给定的全部空间。但是,当我在 QWidget 中放置一个 QSplitter 并使用 QWidget 添加一个选项卡时,它不会使用给定空间 - 只有拆分器大小是多少。
我想远离 QLayout,因为我在拆分器中有所有必要的小部件。我需要的是让我的 QWidget 使用选项卡中的所有空间(这应该允许 QSplitter 使用 QWIdget 中的所有空间)。
我在下面构建了一个示例,显示了比较以及结果。长长的问题 - 我怎样才能让场景一(在“标签一”内)看起来像场景二(“标签二”),并且仍然使用父 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");