我还有关于Qt的另一个问题。我在Qt Designer工作,我正在学习样式表是创建自定义外观的好方法。但是,我对代码应该存在的位置有疑问。
在Qt Designer中,您可以选择右键单击窗口小部件并更改样式表选项。这实际上将样式表代码放在UI表单中,稍后将在幕后处理。
但是,我想说我想要更改UI表单中某些垂直布局的显示(背景颜色)。我没有能力右键单击它来改变设计师的风格。相反,我被迫将代码放在项目的其他地方并使用" setStyleSheet(...)"方法
我的问题:我应该在哪里放置此代码?参考所有帮助文档,他们似乎只是使用setStyleSheet方法,但没有提到代码应该存在的位置。它应该存在于构造函数中吗?或者是否有另一个区域(如配置文件)应包含此内容?
我无意让造型成为事件驱动的,所以我只是想在应用程序的开头设置它并完成它。
我感谢任何帮助!
答案 0 :(得分:2)
样式表只是一个需要传递给setStyleSheet
的字符串。您可以选择存储字符串的位置和方式。有几种方法可以做到。
创建一个文件,比如widget.qss
并将样式表数据存储在其中。使用QFile
读取其内容并设置样式表。
/* QSS File (widget.qss) */
QWidget {
background: gray;
color: darkblue;
}
/* you source file (mywidget.cpp) */
....
QFile styleFile( ":/widget.qss" );
styleFile.open( QFile::ReadOnly );
mywidget->setStyleSheet( QString::fromLatin1( styleFile.readAll() ) );
styleFile.close();
....
/* QRC File (resources.qrc) */
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix='/'>
....
<file>widget.qss</file>
</qresource>
</RCC>
/* QMake Project File (project.pro) */
....
RESOURCES += resources.qrc
您可以将样式表字符串存储在头文件中,并将其添加到源文件中。这是不一种好方法或优雅的方式。 首选方法1
/* Header File (mywidgetstyle.h) */
#ifndef MYWIDGETSTYLE_H
#define MYWIDGETSTYLE_H
include <QString>
static QString mywidget_style = QString(
"QWidget {" \
" background: gray;" \
" color: darkblue;" \
"}"
);
/* Source File (mywidget.cpp) */
#include "mywidgetstyle.h"
....
setStyleSheet( mywidget_style )l
....