gpt4 book ai didi

python - PyQt:有没有更好的方法在代码中设置 objectName?

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:33 26 4
gpt4 key购买 nike

当您使用 Qt_Designer 或 Qt_Creator 设计表单时,任何给定小部件的 objectName 总是设置为某个值。但是,如果您在代码中创建了一个小部件并且稍后需要 objectName,则必须显式分配它。那么小部件分配至少需要两行代码。这看起来很不优雅。

例子:

button1 = QPushButton('button caption')   # at this point objectName is some kind of empty string
button1.setObjectName('button1')

如果您稍后需要查找小部件(即使用 findChild),则必须设置 objectName,否则您就不走运了。

有没有什么方法可以自动设置 objectName 而无需额外的代码行?我看着 PyQt5 Reference Guide并找不到这样的功能。 similar question was asked在 Code Review 上,但没有得到任何答案。两行代码不是世界末日,但它似乎是多余的。不知何故,我需要为 Python(第一行)和 Qt 分配两次此名称。

最佳答案

您可以在创建按钮时将 objectName 作为关键字参数传递。

button1 = QPushButton('button caption', objectName='button1')

这可以在初始化期间将其扩展到任何 Qt 属性:

button1 = QPushButton(text='button caption', objectName='button1', icon=icon1)

此外,在构造对象时也可以连接信号:

button1 = QPushButton(text='button caption', objectName='button1', clicked=someMethod)

添加的命名参数等效于 button1.clicked.connect(someMethod)

关于python - PyQt:有没有更好的方法在代码中设置 objectName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50726510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com