【问题标题】:Styling only promoted widgets using QT Creator使用 QT Creator 仅对提升的小部件进行样式设置
【发布时间】:2011-04-18 20:37:21
【问题描述】:

我是 Qt 新手,一直在使用 Qt Creator 设计表单。我注意到我可以为表单样式表中的特定小部件应用样式,并且它会为表单上的每个小部件设置样式。例如 "QPushButton{color: red;}" 将使表单上的所有 QPushButtons 都有红色文本。

有没有办法只将样式应用于某些小部件组?例如,如果我推广一个 QPushButton 并将其命名为 MyButton,我如何只为 MyButtons 设置样式。我希望能够执行“MyButton{color: green;}”之类的操作,但这似乎行不通。

有没有更好的方法来做我想做的事情(最好使用 Qt Creator)?我似乎在任何地方都找不到这样的例子,但也许是因为我没有使用正确的术语。

谢谢, 标记

【问题讨论】:

    标签: qt stylesheet qt-creator


    【解决方案1】:

    有很多选项可以在样式表中指定选择器。他们是documented here

    我使用的一个(在official style sheet reference document 中暗示)是 |=

    QPushButton[objectName|="somePrefix_"]
    

    我使用它来选择具有相同对象名称前缀的项目。当然,您可以通过将样式表应用到包含您想要设置不同样式的按钮的面板来实现类似的效果,但这可能会变得很棘手。

    【讨论】:

    • 就是这样。这种方法有一个额外的好处,即在应用程序运行时从 Qt(Creator|Designer)中显示。唯一的替代方法是提升所需的小部件(例如,到一个空的子类),然后根据提升的类型选择和设置这些小部件的样式——由于 Qt(Creator|Designer)中的突出问题,它会在应用程序运行时显示,但not 来自 Qt(Creator|Designer)。 </bangs_head_repeatedly_on_keyboard>
    【解决方案2】:

    IIRC 应该可以工作,但创建者可能无法正确显示预览,因为它没有实例化您的按钮。就我个人而言,我认为使用在启动时加载的全局 .css 文件比在 creator 中的每个元素上应用单一样式效果更好。

    使用QApplication::setStyleSheet() 设置全局样式表

    【讨论】:

      猜你喜欢
      • 2011-09-25
      • 2020-10-03
      • 2010-12-18
      • 2016-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-25
      • 2013-10-06
      相关资源
      最近更新 更多