我正在处理一个QWizard的样式表,我想删除按钮上方的水平线。
我已经发布了一个最小示例这里,问题已经在最小示例中得到解决,但是我的项目中有一些代码行阻止了解决方案的工作,因此我在这里发布另一个问题。
正如scopchanov所说,我使用了“QPalette”技巧。但是我有一个在qApp上定义的大型样式表,这是我的问题所在。使用非常小的样式会出现相同的问题。
重现步骤是在声明“QApplication”后添加此行:
我已经发布了一个最小示例这里,问题已经在最小示例中得到解决,但是我的项目中有一些代码行阻止了解决方案的工作,因此我在这里发布另一个问题。
这是我的代码(完整可构建示例可以从此处的gist 下载):
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();
}
正如scopchanov所说,我使用了“QPalette”技巧。但是我有一个在qApp上定义的大型样式表,这是我的问题所在。使用非常小的样式会出现相同的问题。
重现步骤是在声明“QApplication”后添加此行:
qApp->setStyleSheet("QLabel { color:black; }");
我希望有人能帮助我。