C++ Qt-QFile未打开.qss文件

C++ Qt-QFile未打开.qss文件,c++,qt,C++,Qt,我正在尝试为我的项目使用外部样式表,但在使用QFile类打开它时遇到了问题。我已将其导入.qrc文件,其中一部分如下所示: <qresource prefix="stylesheets"> <file>Resources/Stylesheet.qss</file> </qresource> 这有什么问题吗?我正在使用Visual Studio 2013和最新的Qt和VS Qt加载项。我还在“Qt项目设置”中将项目设置为支持QML。

我正在尝试为我的项目使用外部样式表,但在使用QFile类打开它时遇到了问题。我已将其导入.qrc文件,其中一部分如下所示:

  <qresource prefix="stylesheets">
    <file>Resources/Stylesheet.qss</file>
  </qresource>
这有什么问题吗?我正在使用Visual Studio 2013和最新的Qt和VS Qt加载项。我还在“Qt项目设置”中将项目设置为支持QML。 .qss文件如下所示(如果直接将其设置为QString,则可以工作)。我不确定是否需要“导入”行:

import Qt 5.3.1

QDialog
{
    background-color: 'white';
}
它读得很好,但风格不适用。这里它处于调试模式:

QDialog不支持“背景色”,只支持“背景:”

(如果这不起作用,还有其他想法: 可能忘记为newGameDialog类指定Q_对象了


或者使用Qt Designer创建QDialog,在stylesheet属性字段中复制样式表源,查看它是否有效,或者在测试实例化对话框时设计器是否显示错误,或者是否正确应用了样式(我认为是Ctrl+R)。

Q\u对象存在。我已经删除了“导入”行,手动编译了.qrc文件,现在它可以工作了。什么时候使用“导入”行?直到现在还没有看到导入,你从哪里得到的?我猜是在搜索互联网寻求指导时偶然发现的。我有使用普通CSS的经验,但不是这样。我认为qt的样式表比较有限(还有一些特定于qt的表达式)。您可以通过从styleSheet.readAll()中将样式读入到QString,以编程方式更改从.qss文件读入的值。然后,您必须进行模式匹配(可能是QRegexp)以找到类或对象名称标识符,并将字符串中的QS更改为您想要的。然后将setStyleSheet与新字符串一起使用。
import Qt 5.3.1

QDialog
{
    background-color: 'white';
}