【发布时间】:2019-11-26 09:46:01
【问题描述】:
如何为我的 gui 类中的所有 QWidget、QLayout、QFrame 等分配 ObjectName? 像这样的代码只适用于 PyQt4:
for w in gui.widgets():
w.setObjectName(str(w)
这在 PyQt5 中是如何工作的?另外,我如何迭代所有对象而不是“只是”小部件?我知道对于 C++ 的这个问题有一些答案,但是我无法将它们翻译成 python。
【问题讨论】:
-
首先,我强烈建议您不要使用小部件(或重要的对象)的字符串表示形式作为对象名称。也就是说,what 在您的情况下不起作用?你有错误吗?
-
我得到的错误是:gui object has no attribute widgets.
-
我发现这以某种方式节省了一些代码行:some_widget = QSomeWidget(..., objectName='button1', ...) 但没有完全回答我自己的问题。
-
如果您向我们提供minimal, reproducible example 也会有很大帮助。
-
据我所知,
widgets()函数在任何 QObject 或 QWidget 类中都不存在。您是否有可能在旧代码中实现并忘记更新它?或者,也许您使用了搜索/替换其他东西,从而重命名了该函数?
标签: pyqt5 objectname