【发布时间】:2021-07-10 04:51:24
【问题描述】:
有人可以帮我理解为什么我的 while 循环没有打印出我想要的吗?
我的代码创建了一个带有指定数量标签的 tkinter 窗口。然后它应该创建相同数量的输入框。这两个都做。
如果我打印 part_number 变量,它会按预期打印:“Part 1”、“Part 2”、“Part 3”。等等
如果我打印它返回的条目变量:“.!entry”、“.!entry1”、“.!entry2”等,它应该打印“part_entry1”、“part_entry2”、“part_entry3”。等等
感谢您的帮助。
from tkinter import *
main = Tk()
main.title('Job Logger')
main.geometry("850x750")
'''''''''
def submit():
a = part_entry1.get()
#b = part_entry2.get()
#c = part_entry3.get()
print(a)
#print(b)
#print(c)
'''
count = 0
x = 50
y = 30
x2 = 150
while count < 3:
part_number = ('Part ' + (str(count + 1)))
Label(main, text=part_number).place(x = x, y = y)
entry = ('part_entry' + (str(count + 1)))
entry = Entry(main)
entry.place(width=120, x=x2, y=y)
y += 30
count += 1
print(part_number)
print(entry)
'''''''''
Button(main, text="Submit Run info", command=submit).place(width=100, x=375, y=200)
'''
mainloop()
【问题讨论】:
-
首先,将
entry绑定到一个字符串。然后,在下一行,您立即丢弃该字符串并将entry重新绑定到tkinter.Entry小部件对象。 -
这是我正在做的还是我需要做的?
-
这就是你正在做的事情——而且是不正确的。
-
你能详细说明我应该做什么吗?
-
对变量使用不同的名称 - 即。
entry_text = 'part_entry' + (str(count + 1))和entry = Entry(...)以及后来的print(entry_text)。但是这样你就不能创建变量part_entry_1等。你不应该这样做,但你应该将它保留在列表中并使用索引来访问列表中的对象。
标签: python tkinter while-loop