6

QTabWidgetを追加するためにサブクラス化しQTabBarています。 の幅全体にタブが伸びますtabBar。したがって、expanding プロパティを true に設定しています。これは、タブの動作について何も変更していないようです。

誰かが同じ問題に遭遇しましたか?Qt 4.6 と組み合わせて使用​​します

TabWidget::TabWidget(QWidget *parent)
{
    tabBar = new QTabBar(this);
    tabBar->setIconSize(QSize(160,160));
    tabBar->setExpanding(true);
    setTabBar(tabBar);
}

編集:解決されました。誰かが興味を持っている場合に備えて、これを実装する方法を次に示します。

    tabBar = new QTabBar(this);
    tabBar->setExpanding(true);
    layout = new QVBoxLayout(this);
    setLayout(layout);
    stackedLayout = new QStackedLayout();
    layout->addWidget(tabBar);
    layout->addLayout(stackedLayout);
    connect(tabBar, SIGNAL(currentChanged(int)), stackedLayout, SLOT(setCurrentIndex(int)));

void MainWindow::addTab(QWidget *widget, const QIcon &icon, const QString &label) {
    tabBar->addTab(icon, label);
    stackedLayout->addWidget(widget);
}
4

3 に答える 3

3

QTabBarソースコードから:

// ... Since we don't set
// a maximum size, tabs will EXPAND to fill up the empty space.
// Since tab widget is rather *ahem* strict about keeping the geometry of the
// tab bar to its absolute minimum, this won't bleed through, but will show up
// if you use tab bar on its own (a.k.a. not a bug, but a feature).

この「機能」を回避するにはQTabBar、ウィジェットの上にを使用して独自のタブ ウィジェットを作成できますQStackedLayout

于 2011-03-01T16:04:40.613 に答える
1

5.2.0 以降

QTabWidget::tab-bar {
   min-width: 999999px;
}

それが動作します。組み合わせを使用する必要はありません。QTabWidget を使用できます。ダニエル・アンズは正しいです。

于 2014-07-26T12:28:03.213 に答える