簡體   English   中英

Qt:如何強制 QTabBar 填充整個布局?

[英]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.

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