我的应用使用了QTabWidget
。我希望选项卡填满选项卡栏的整个长度。
我的应用程序还使用调色板来设置所有小部件,表单等的颜色。
我发现我可以按预期设置标签大小:
ui->tabWidget->setStyleSheet(QString("QTabBar::tab { width: %1px; }").arg(ui->tabWidget->size().width()/ui->tabWidget->count()));
但这会使选项卡小部件及其所有子级忽略我的调色板。
如何使用我的调色板并增加标签大小?
答案 0 :(得分:0)
我试图重现您描述的行为,但未能做到。我正在使用Qt 5.13.0,也许它是旧版本。起初我还以为,我重现了您的行为,但后来我意识到,我只是不完全理解QPalette
中的选项,它们实际上有很多具有不同含义的ColorGroups和ColorRoles。
请尝试以下简单的测试运行器,以与您的Qt版本进行验证。
#include <QApplication>
#include <QTabWidget>
#include <QFrame>
#include <QHBoxLayout>
#include <QPushButton>
int main(int argc, char** args) {
QApplication app(argc, args);
auto p=app.palette();
p.setColor(QPalette::ColorGroup::Active, QPalette::ColorRole::Background, QColor("red"));
p.setColor(QPalette::ColorGroup::Active, QPalette::ColorRole::Foreground, QColor("blue"));
p.setColor(QPalette::ColorGroup::Active, QPalette::ColorRole::ButtonText, QColor("magenta"));
app.setPalette(p);
auto w= new QTabWidget;
auto f=new QFrame;
f->setLayout(new QHBoxLayout);
f->layout()->addWidget(new QPushButton("Test"));
w->addTab(f,"Tab1");
w->setStyleSheet(QString("QTabBar::tab { width: %1px; height: %1px }").arg(100));
w->show();
app.exec();
}