0

Tkinterで動的に要素を作成する方法を探しています。たとえば、ユーザーが5と入力した場合、5つのラジオボタンとその横にエントリを作成するループが必要です。

4

2 に答える 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 に答える