1
我正在實現一個標籤樣式的用戶界面。其中選項卡由QListWidget顯示,內容由QStackedWidget顯示。在QStackWidget的每個頁面上都有允許在QHBoxlayout中插入面板(小部件)的佈局。在每個面板上,都有一些圖標在QHBoxLayout中。以下是我想實施的理想情況。與QStackedWidget QLayout問題
但QStackWidget此的其他頁面上沒有如下
我想刪除多餘的空格(或排列圖標向左消除的情況下(以較少的圖標)在面板上的圖標之間的額外空間)
我試過墊片,然後發生這種情況:(
請幫我改正這件事。我隔碼是
inline QSpacerItem * buildSpacer(Qt::Orientation orientation)
{
QSpacerItem * pSpacer = nullptr;
if (orientation == Qt::Horizontal)
{
pSpacer = new QSpacerItem(1000, UNIT_VALUE, QSizePolicy::Expanding, QSizePolicy::Minimum);
}
else
{
pSpacer = new QSpacerItem(UNIT_VALUE, 1000, QSizePolicy::Minimum, QSizePolicy::Expanding);
}
return pSpacer;
}
注意 我DONOT要使用QTabWidget。順便說一句,這個問題也與QTabWidget
非常感謝你。有效。如果可能的話,你能解釋我的間隔器方法有什麼錯誤嗎? – Jai
很難說,因爲如[文檔](http://doc.qt.io/qt-5/qspaceritem.html#details)所述,「通常情況下,您不需要直接使用此類」。所以我從來沒有使用它:p但是看Qt的[源代碼](http://code.qt.io/cgit/qt/qtbase.git/tree/src/widgets/kernel/qboxlayout.cpp#n895),它看起來像'insertStretch'(它被'addStretch'調用)使用類似於你的代碼,除了間隔符是用空值(0,0)構造的。拉伸值仍與間隔件一起使用,所以也許它不能單獨使用 – wasthishelpful