QTabBar中的Qt4扩展选项卡

QTabBar中的Qt4扩展选项卡,qt,qt4,qtabwidget,qt4.6,qtabbar,Qt,Qt4,Qtabwidget,Qt4.6,Qtabbar,我正在对QTabWidget进行子类化,以添加一个QTabBar,who的选项卡延伸到选项卡栏的整个宽度。因此,我将扩展属性设置为true。这似乎不会改变选项卡的任何行为 有人遇到过同样的问题吗?我将Qt4.6与 TabWidget::TabWidget(QWidget *parent) { tabBar = new QTabBar(this); tabBar->setIconSize(QSize(160,160)); tabBar->setExpanding

我正在对
QTabWidget
进行子类化,以添加一个
QTabBar
,who的选项卡延伸到
选项卡栏的整个宽度。因此,我将扩展属性设置为true。这似乎不会改变选项卡的任何行为

有人遇到过同样的问题吗?我将Qt4.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);
}

qtabar
源代码:

// ... 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).
为了绕过此“功能”,您可以在带有
QStackedLayout
的小部件上方使用
QTabBar
创建自己的选项卡小部件,在此基础上,强制
QTabWidget
扩展
QTabBar
的更简单方法是在
QTabWidget
上设置一个样式表,如下所示:

QTabWidget::tab-bar {
    width: 999999px;
}
或者另一个荒谬的大数字。如果
QTabWidget
的选项卡垂直而不是水平,请使用“高度”:

QTabWidget::tab-bar {
    height: 999999px;
}
对于Qt5.0.1,这对我来说似乎很好。选项卡展开以填充空间,每个选项卡得到相等的部分。然而,不管怎样,他们似乎有意为多出一个标签留出足够的空间。但是剩余的空间是根据需要填充的。如果添加了太多的选项卡,则可能会为撕裂/滚动按钮保留空白,但我不确定。

5.2.0以后的版本

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

它会起作用的。不需要使用任何组合。您可以使用QTabWidget。Daniel ans是正确的。

谢谢,成功了。我想知道,为什么那条信息从来没有进入在线文档。