Qt4 расширение вкладок в QTabBar
Я подклассы 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);
}
EDIT: было решено, вот как я его реализовал, если кому-то интересно:
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);
}
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
.
дом на @baysmith это, более простой способ заставить QTabWidget
пусть QTabBar
развернуть, чтобы установить таблицу стилей на вашем QTabWidget
это выглядит примерно так:
QTabWidget::tab-bar {
width: 999999px;
}
или другое смехотворно большое число. Если QTabWidget
имеет вкладки, идущие вертикально, а не горизонтально, вместо этого используйте "высота":
QTabWidget::tab-bar {
height: 999999px;
}
это, кажется, отлично работает для меня, с Qt 5.0.1. Вкладки расширяются, чтобы заполнить пространство, каждый из которых получает равную часть. Тем не менее, похоже, что они намеренно оставляют достаточно свободного места для еще одной вкладки. А остальное пространство заполняется по желанию. Пустое пространство может быть зарезервировано для кнопок разрыва / прокрутки, если будет добавлено слишком много вкладок , но я не уверен.
5.2.0 года
QTabWidget::tab-bar {
min-width: 999999px;
}
Он будет работать. Нет необходимости использовать любую комбинацию. Вы можете использовать QTabWidget. Дэниел Анс прав.