【发布时间】:2020-11-15 13:23:37
【问题描述】:
string = QLineEdit.text()
for i in range(my_lists.count()):
if string == my_lists.item(i).text():
print("alrrady exists")
else:
my_lists.addItem(string)
它确实打印已经存在但是。例如,如果我的列表小部件中有 4 个项目。并且输入已经存在,它会打印出“已经存在”并添加3个文本输入的项目。
(它根据项目的数量添加项目,但 -1)
这可能是由 for 循环引起的,所以我在 if 语句中添加了 break。它根据上面的数量添加更多项目。所以我将 break 放在 else 语句中,你可以说它更好,因为它只添加了一个。
(如果您想知道是的,我尝试在它们两个上都添加 break 但它给我的结果与将 break 放在 else 语句中的结果相同)
如果您的列表小部件中有零项,则此代码将不起作用,因此我添加了
if my_lists.count() == 0:
my_lists.addItem(input)
【问题讨论】:
-
"input() #真的是一个Qlineedit,但是写起来更容易。"请不要。
input()不仅是一个 python 内置函数,你不应该覆盖它,而且它也是不必要的和令人困惑的,尤其是对于像这样的共享知识网站。使用QLineEdit,是一致的,只是长了4个字母,不需要无用的cmets来指定。 -
这样更好吗?
标签: python python-3.x pyqt pyqt5