css - 如何访问设置的 qt 样式表属性(像语法一样的 css),或者是否有 css 到 xml 转换器?

标签 css xml qt

你好,

我正在开发一个由样式表设置样式的 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::SelectorQCss::Declaration 在一起,有一个查看 QCss::Declaration 上方的注释,了解它是如何分解的。

最后的警告:使用 Qt 私有(private)接口(interface)很容易导致维护问题 - 不要在没有非常充分理由的情况下这样做。

关于css - 如何访问设置的 qt 样式表属性(像语法一样的 css),或者是否有 css 到 xml 转换器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374862/

相关文章:

Android - 旋转切掉形状的角

c++ - Qt 版本不显示图像

c++ - Qt 和 Webkit 未显示所有 CSS 3、HTML 5 效果

css 表格单元格内的绝对位置 : strange Firefox display

html - 悬停时背景叠加

dtd - 如何声明多个元素共有的属性?

xml - itunes 库上的 XSLT

C 代码与 Qt gui 绑定(bind)

html - 嵌套 ul 的位置问题

html - IE6 错误!侧面板