【问题标题】:Is there a nice way to make this into a for loop? [duplicate]有没有一种很好的方法可以使它成为一个 for 循环? [复制]
【发布时间】:2021-01-19 19:10:14
【问题描述】:

我想知道是否有办法把它变成一个 for 循环,让它看起来更好。

print(self.User_Edit_1.text())
print(self.User_Edit_2.text())
print(self.User_Edit_3.text())
print(self.User_Edit_4.text())
print(self.User_Edit_5.text())
print(self.User_Edit_6.text())
print(self.User_Edit_7.text())

我希望它看起来像这样:

for i in range(1,8):
    print(self.User_Edit_{i}.text())

我尝试过使用 f 字符串,但它不允许嵌套变量我不认为,我可以将其转换为字符串,更改索引,然后将其更改回那种对象,但我不这样做知道怎么做。

对象的类是PyQt5.QtWidgets.QLineEdit,我正在做一个GUI。

在相关的说明中,他们当前是否有任何关于 PyQT5 的教程,我看到的那些来自 2015 年的 pyqt4,它们不再起作用,而且这些文档使用起来似乎相当混乱(我已经尝试过)

【问题讨论】:

  • 使用print(getattr(self, "User_Edit_{}".format(i)).text())
  • 从一开始就使用列表而不是变量序列。

标签: python python-3.x pyqt5


【解决方案1】:

您可以将要迭代的项目放在某种集合中,例如列表:

user_list = [self.User_Edit_1, self.User_Edit_2, self.User_Edit_3, self.User_Edit_4, self.User_Edit_5, self.User_Edit_6, self.User_Edit_7]

for user in user_list:
    print(user.text())

【讨论】:

    猜你喜欢
    • 2022-12-19
    • 1970-01-01
    • 2019-12-09
    • 2016-02-21
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    相关资源
    最近更新 更多