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