我有一个来自QtDesigner的Ui_Form,它包含变量名,例如:
self.ui.alphabetic_menu_QLabel_A
...
self.ui.alphabetic_menu_QLabel_Z
self.ui.label
...
self.ui.label_10
我看到Ui_Form不可迭代。是否有一种很好的Python方法可以将所有实例提取到包含指定子字符串的变量名列表中(例如,alphabetic_menu_QLabel)?
我不知道QtDesigner,但如果你正在处理一个python实例,可以使用dir()内置方法完成。
dir(yourform.ui)
返回所有属性名称的列表。从你的例子中,我认为你应该得到类似的东西:['alphabetic_menu_QLabel_A', ..., 'alphabetic_menu_QLabel_Z', 'label', ..., 'label_10', ...]
。
要小心,因为dir()
也会返回其他内容。来自文档:
该列表包含对象的属性名称,其类的属性名称,以及其类的基类的属性的递归。
所以你需要过滤列表。如果您只对包含给定子字符串的属性感兴趣,则可以使用列表推导。
mysubstr = 'alphabetic_menu_QLabel'
myattributes = [att for att in dir(yourform.ui) if mysubstr in att]