你好,
我正在开发一个由样式表设置样式的 qt 应用程序,设置如下
QApplication qApplication(argc, argv);
QFile styleFile("myStyleFile.stylesheet");
bool check = styleFile.open(QFile::ReadOnly);
qApplication.setStyleSheet(styleFile.readAll());
此应用程序的重要窗口使用 QGraphicsScene(哪些元素不能使用样式表设置样式)。 但我想要独特的外观。
所以问题是:
1.) 有没有办法访问设置的样式表属性(比如 getProperty("QMenu::item:selected") )?
2.) 或者有人知道 xml 文件工具的 css 语法吗? (比一个人可以使用 qt xml/dom 支持访问设置的属性)
我知道可以访问一些特殊的属性
QColor mainWindowbackgroundColor =
palette().color( QWidget::backgroundRole() );//Get the backgroundcolor set by stylesheet.
但我正在寻找一种方法来访问所有设置的属性。
谢谢!
最佳答案
我认为您将需要使用私有(private) Qt 类来执行此操作。这通常不是一个好主意,因为接口(interface)是内部的并且可能会发生变化。
在 Qt (4.8.4) sources \src\gui\text\qcssparser_p.h
header 中声明了 QCss 命名空间。
虽然我没有尝试过,但看起来您需要创建一个QCss::Parser
,调用parse
来获得一个QCss::样式表
。该对象包含解析后的数据,包括 QCss::StyleRule
向量,它匹配 QCss::Selector
和 QCss::Declaration
在一起,有一个查看 QCss::Declaration
上方的注释,了解它是如何分解的。
最后的警告:使用 Qt 私有(private)接口(interface)很容易导致维护问题 - 不要在没有非常充分理由的情况下这样做。
关于css - 如何访问设置的 qt 样式表属性(像语法一样的 css),或者是否有 css 到 xml 转换器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374862/