Я пытался воспроизвести ваше описанное поведение, но не смог этого сделать.Я использую 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();
}