【问题标题】:Way to set all items to defaults of PyQt5 except labels?将所有项目设置为 PyQt5 的默认值(标签除外)的方法?
【发布时间】:2021-06-30 10:41:37
【问题描述】:

我创建了一个框架并在该框架中添加了许多 pyqt5 项。

添加表单后,我想将框架的所有项目清除为默认的空白值。我可以通过 .clear() 方法设置单个项目来做到这一点。

有什么方法可以一次性清除框架或选项卡中的所有项目以清除(或默认)值?

【问题讨论】:

    标签: python python-3.x pyqt pyqt5


    【解决方案1】:

    没有清除所有输入的方法。一个简单的解决方案是使用 findChildren 方法迭代小部件:

    for widget in parent_widget.findChildren([QLineEdit, QComboBox]):
        if hasattr(widget, "clear") and callable(widget.clear):
            widget.clear()
    

    for widget in parent_widget.findChildren(QWidget):
        if not isinstance(widget, QLabel) and hasattr(widget, "clear") and callable(widget.clear):
            widget.clear()
    

    【讨论】:

    • 这里的 parent_widget 是什么?它将是父框架名称吗?
    • @sam parent_widget 是包含您要清理的所有小部件的小部件,在您的情况下,它似乎是“框架”
    • 它不起作用,因为它甚至清除了所有标签。所有的名称标签也因此而空白。我只需要将值设为空白。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多