【问题标题】:Where should Qt style sheet code be placed?Qt 样式表代码应该放在哪里?
【发布时间】:2016-03-27 14:14:12
【问题描述】:

我还有一个关于 Qt 的问题。我在 Qt Designer 工作,并且正在学习样式表是创建自定义外观的好方法。但是,我有一个关于代码应该放在哪里的问题。

在 Qt Designer 中,您可以选择右键单击小部件并更改样式表选项。这实际上将样式表代码放置在 UI 表单中,稍后将在后台处理。

但是,假设我想更改 UI 表单中某个垂直布局的外观(背景颜色)。看来我无法右键单击它来更改设计器中的样式。相反,我不得不将代码放在项目中的其他位置并使用“setStyleSheet(...)”方法。

我的问题:我应该把这段代码放在哪里?参考所有的帮助文档,他们似乎只是使用了 setStyleSheet 方法,但没有提到代码应该放在哪里。它应该存在于构造函数中吗?或者是否有另一个区域(如配置文件)应该包含这个?

我无意让样式成为事件驱动的,所以我只想在应用程序开始时设置它并完成它。

感谢您的帮助!

【问题讨论】:

  • 那么,您是否尝试将所有表单的样式分离为可以立即应用于整个应用程序的样式?

标签: qt stylesheet qt-designer


【解决方案1】:

样式表只是需要传递给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

方法二:头文件方法

您可以将样式表字符串存储在头文件中并将其添加到源文件中。这不是好方法或优雅的方法。 首选方法一

/* 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
....

【讨论】:

    猜你喜欢
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多