【问题标题】:Finding variables in Ui_Form based on substringUi_Form中根据子串查找变量
【发布时间】:2019-02-26 21:55:46
【问题描述】:

我有一个来自 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)的变量名列表中?

【问题讨论】:

    标签: python self iterable


    【解决方案1】:

    我不知道 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]
    

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多