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::StyleRule
和QCss::Selector
一起匹配的QCss::Declaration
向量,请查看QCss::Declaration
上方的注释以了解如何将其分解。
最终警告:使用Qt专用接口可能会导致维护问题-在没有充分理由的情况下请勿这样做。
关于css - 如何访问设置的Qt样式表属性(如语法的CSS),或者是否有CSS到XML转换器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23374862/