【问题标题】:Styling problem. Cannot access specific button造型问题。无法访问特定按钮
【发布时间】:2020-11-10 08:46:21
【问题描述】:

我想将图像添加到我的按钮。我的所有样式都在一个单独的文件中。

根据 Qt docs https://doc.qt.io/qt-5/stylesheet-syntax.html#selector-types 我应该能够使用以下语法访问特定按钮

QPushButton#my_button_name {}

但它似乎不起作用。 这是我的代码中的一个示例:

# script with widgets and layouts

class Tab1():
    self.button1 = QPushButton()


# styling script

def button_style():
    return '''QPushButton#button1 {font:15px;}'''

我误会了什么?我尝试添加“自我”。到样式脚本中的名称,但它也不起作用。

【问题讨论】:

    标签: python pyqt pyside2 qtstylesheets


    【解决方案1】:

    样式表的名称选择器必须通过设置objectName 属性来使用; python 属性命名对此完全没用,因为 Qt 对此一无所知。

    为了正确应用样式表,您需要设置对象名称:

        # ...
        self.button1 = QPushButton()
        self.button1.setObjectName('button1')
        self.setStyleSheet('QPushButton#button1 {font:15px;}')
    

    【讨论】:

    • 谢谢!我希望 Qt 在官方文档中包含这个说明
    • 对于任何对此感到疑惑的人,Qt 文档对selectors 非常具体,因为他们明确表示# 前缀用于对象名称。无论是 Python 还是 C++,变量的名称只是一个指向对象的指针,它没有定义任何关于对象本身的内容(Qt 也不应该知道关于该名称的任何内容),并且一个对象可以有许多命名变量指向对它,甚至没有。澄清这个问题没有意义,因为假设程序员应该知道这一点。
    猜你喜欢
    • 2018-03-11
    • 2022-01-03
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2023-02-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多