我正在寻找一种在Tkinter中动态创建元素的方法。例如,假设用户输入5,我想要一个循环来创建5个单选按钮和旁边的条目。循环创建元素Tkinter
0
A
回答
1
这里有一个简单的例子,让你开始:
import Tkinter as tk
class ButtonBlock(object):
def __init__(self, master):
self.master = master
self.button = []
self.button_val = tk.IntVar()
entry = tk.Entry()
entry.grid(row=0, column=0)
entry.bind('<Return>', self.onEnter)
def onEnter(self, event):
entry = event.widget
num = int(entry.get())
for button in self.button:
button.destroy()
for i in range(1, num+1):
self.button.append(tk.Radiobutton(
self.master, text=str(i), variable=self.button_val, value=i,
command=self.onSelect))
self.button[-1].grid(sticky='WENS', row=i, column=0, padx=1, pady=1)
def onSelect(self):
print(self.button_val.get())
if __name__ == '__main__':
root = tk.Tk()
ButtonBlock(root)
root.mainloop()
+0
谢谢,这正是我所期待的。 – Arktri 2013-03-26 16:49:17
1
小部件没有什么特别之处。你在一个循环中创建它们,您将创建任何其他对象以相同的方式:
for i in range(5):
r = tk.Radiobutton(...)
r.pack(...) # or .grid(...)
# if you need to reference these buttons later,
# save them in a list
self.buttons.append(r)
相关问题
- 1. 循环数组创建HTML元素
- 2. Node.js orm2在循环中创建元素
- 3. 循环创建多个div元素? JQUERY
- 4. 用循环创建多个HTML元素
- 5. 在循环中创建J2ME元素
- 6. 使用可能无元素的循环创建元组
- 7. 如何循环使用jinja2 for循环来创建一个select元素?
- 8. 循环类元素
- 9. TinyXML循环元素
- 10. 创建循环
- 11. 创建循环?
- 12. 创建html元素并使用for循环(或映射?)附加子元素
- 13. 如何触发循环中创建的所有元素'onclick?
- 14. 用循环在列表元素中创建多个列表项
- 15. 创建点击监听for循环的每个元素
- 16. 为什么要创建循环来获取事件的元素?
- 17. 调用从for循环创建的数组元素
- 18. jquery循环创建具有保留值的元素
- 19. 如何在for循环上创建独特的canvas元素
- 20. 循环创建的元素的值始终是5
- 21. 为事件循环创建一个可观察元素
- 22. jQuery通过动态创建相同类的元素来循环
- 23. for循环中动态创建的html元素的Onclick事件
- 24. 使用for循环来创建html元素
- 25. 使用for循环创建元素和事件侦听器
- 26. 优化嵌套循环使用jQuery创建HTML元素
- 27. Javascript将事件添加到循环中新创建的元素
- 28. 在php while while循环内创建一个元素
- 29. 循环创建一个元组
- 30. Tkinter循环功能
这可以使用理解列表轻松完成。但是,也可以发布您尝试过的内容。 – 2013-03-26 16:21:25
我还没有编码任何东西,因为我不知道从哪里开始。我认为我遇到的主要问题是动态创建变量名称。 – Arktri 2013-03-26 16:32:40