HY,

我正在使用样式表设置的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支持访问set属性)

我知道可以访问某些特殊属性,例如

   QColor mainWindowbackgroundColor =
       palette().color( QWidget::backgroundRole() );//Get the backgroundcolor set by stylesheet.


但是我正在寻找一种访问所有设置属性的方法。

谢谢!

最佳答案

我认为您将需要使用私有Qt类来执行此操作。这通常不是一个好主意,因为接口是内部的并且随时可能更改。

在Qt(4.8.4)源\src\gui\text\qcssparser_p.h标头中,声明了QCss命名空间。

虽然我还没有尝试过,但是看来您需要创建一个QCss::Parser,调用parse来获取QCss::StyleSheet。该对象包含已解析的数据,其中包含与QCss::StyleRuleQCss::Selector一起匹配的QCss::Declaration向量,请查看QCss::Declaration上方的注释以了解如何将其分解。

最终警告:使用Qt专用接口可能会导致维护问题-在没有充分理由的情况下请勿这样做。

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

10-11 20:53