Я работаю над таблицей стилей QWizard
и я хотел бы удалить горизонтальную линию чуть выше кнопки.
Я уже выложил минимальный пример Вот, вопрос был решен Скопчановым из минимального примера, но у меня есть несколько строк кода в моем проекте, которые избегают решения, поэтому я выкладываю здесь другой вопрос.
Вот мой код (полный пример сборки можно скачать из гист Вот):
licensewizard.h
#include <QWizard>
class LicenseWizard : public QWizard {
Q_OBJECT
public:
LicenseWizard(QWidget *parent = 0);
};
licensewizard.cpp
#include <QApplication>
#include <QtWidgets>
#include "licensewizard.h"
LicenseWizard::LicenseWizard(QWidget *parent) : QWizard(parent) {
setWizardStyle(ModernStyle);
// solution from @scopchanov https://stackoverflow.com/a/52541248/8570451
QPalette p(palette());
p.setColor(QPalette::Mid, p.color(QPalette::Base));
setPalette(p);
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// this line breaks @scopchanov solution.
// replace QLabel by QPushButton, or anything else... still broken.
qApp->setStyleSheet("QLabel { color:black; }");
LicenseWizard wizard;
wizard.show();
return app.exec();
}
Как сказал Скопчанов, я использовал QPalette
трюк. Но у меня есть большая таблица стилей, определенная в qApp, и это является причиной моей проблемы. Использование очень маленького стиля дает ту же проблему.
Шаг к воспроизведению — добавить эту строку после объявления QApplication
:
qApp->setStyleSheet("QLabel { color:black; }");
Я надеюсь, что кто-то может мне помочь.
Чтобы это исправить, установите палитру всего приложения, а не только LicenseWizard
класс, как это:
LicenseWizard::LicenseWizard(QWidget *parent) : QWizard(parent) {
setWizardStyle(ModernStyle);
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QPalette p(qApp->palette());
p.setColor(QPalette::Mid, p.color(QPalette::Base));
qApp->setPalette(p);
qApp->setStyleSheet("QLabel { color:black; }");
LicenseWizard wizard;
wizard.show();
return app.exec();
}
Замечания: Как упоминалось в моем ответе на связанный вопрос, если эта цветовая роль используется каким-либо другим элементом, это также повлияет на его цвет.
Других решений пока нет …