Tkinterで動的に要素を作成する方法を探しています。たとえば、ユーザーが5と入力した場合、5つのラジオボタンとその横にエントリを作成するループが必要です。
質問する
2566 次
2 に答える
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)
于 2013-03-26T16:37:56.797 に答える
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()
于 2013-03-26T16:42:24.147 に答える