[英]Qt: how to force QTabBar to fill whole layout?
我有一個自定義 QTabWidget,它包含一個自定義 QTabBar。 我想將 QTabBar 的區域(紅色區域)一直擴展到 window 的右側,而不擴大標簽本身。
我已經嘗試將 QTabBar 的水平尺寸策略設置為 QSizePolicy::Ignored 或 QSizePolicy::Expanding,但這些都不起作用。 QTabBar 似乎受到 QTabWidget 的限制,但我不知道為什么或如何解決這個問題。
編輯:
除了紅色區域之外,我希望標簽欄占據綠色區域。 我正在嘗試實現拖放選項卡 - 我需要 QTabBar 占據所有水平空間,以便可以在其末尾拖動選項卡。
目前,我的自定義 TabBar 只是一個捕獲拖放事件的標准 QTabBar。
沒有直接的方法可以做到這一點。 有QTabBar::setExpanding()
,但我只是嘗試過,但沒有奏效。
但是我確實看到了QTabBar::setMinimumWidth()
並且您可以有效地使用此方法來實現您想要的行為。 您的代碼大致如下所示:
class MyTabWidget : public QTabWidget {
Q_OBJECT
protected:
void showEvent(QShowEvent *event) {
tabBar()->setMinimumWidth(size().width() / tabBar()->count());
QTabWidget::showEvent(event);
}
}
設置文檔模式(真)
是我一直在尋找的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.