题
如何使用Qt全球加载样式表(.qss样式资源)?
我试图让事情更有效:
middleIntText -> setStyleSheet("QLineEdit { border: 1px solid gray;
border-radius: 5px;padding: 0 8px;
selection-background-color:darkgray;
height:40px;font-size:15px;}");
.
我认为以下将在加载qlineedit的所有qlineedit小部件时工作:
qss文件:
.
QLineEdit { border: 1px solid gray;
border-radius: 5px;
padding: 0 8px;
selection-background-color:darkgray;
height:40px;
font-size:15px;}
cpp文件:
.
QApplication a(argc, argv);
QFile stylesheet("formStyle.qss");
stylesheet.open(QFile::ReadOnly);
QString setSheet = QLatin1String(stylesheet.readAll());
a.setStyleSheet(setSheet);
也许这是对的,我正在做别的错误?
解决方案
您调用 qstyle * qapplication :: setstyle(constqstring&style),它从qstylefactory请求qstyle对象样式。
而言,您应该调用 void qapplication :: setstylesheet(const qstring&phert),设置应用样式表。
其他提示
以上尝试是正确的语法,但有可能不起作用的原因。
可能的问题:
-
源文件(.qss)未被检索
选择不正确的顶部小部件以应用级联。
-
.qss(css)代码的语法。
我不得不问我的问题是我有两个问题中的两个问题。我首先要指向文件正确的位置,而第二个我必须直接申请qwidget。
.QFile stylesheet("G:/Applications/Projects/ProspectTracker/formStyle.qss"); stylesheet.open(QFile::ReadOnly); QString setSheet = QLatin1String(stylesheet.readAll()); QWidget::setStyleSheet(setSheet);
@bill谢谢您的帮助。他指出,我发布了
.setStyle
而不是生成的。上面的示例代码不再反映了这一点,但如果我没有改变我所做的任何东西都会有效。