私はTkinterでいくつかのことを試みています。 私のアプリでは、ユーザーがドロップダウンリストから1つのオプションを選択します。この選択に基づいて、私はラジオボタンのリストを設定したいと思う。私は、ドロップダウンリストに値を入れるリストとラジオボタンの辞書を作成しました。コードを確認してください。ラジオボタンを正しく設定できません - Tkinter
は、いくつかの作業ではなく作業の例は以下を参照してください。
あなたが写真から見ることができるように。最初のウィンドウはうまくいきます。第二に。しかし、3番目のウィンドウは正しくありません。オプション「410」が残ります。私はアプリケーションを終了せずにその後の選択をしています。
おそらく私は正しい場所で変数を宣言していないと思います。ある人がコードを見て修正することができれば非常に役に立ちます。
コード:
from Tkinter import *
import ttk
class App(Frame):
def __init__(self,parent):
Frame.__init__(self)
self.parent = parent
self.v = IntVar()
#self.radio_value = []
#self.i = 0
self.GUI()
def GUI(self):
self.master.title('Example')
self.pack(fill = BOTH, expand = 1)
self.options = ['a1','a2','a3','a4','a5']
self.box_value = StringVar()
self.box = ttk.Combobox(self, textvariable=self.box_value)
self.box.bind("<<ComboboxSelected>>", self.set_Radio)
self.box['values'] = self.options
self.box.current(0)
self.box.grid(row = 0, column = 0 )
self.choices = {'a1':['30', '70', '140', '410'], 'a2': ['a', 'b', 'c'], 'a3': ['x', 'y', 'z'], 'a4':['p', 'q', 'r'], 'a5': ['l', 'm', 'n']}
def set_Radio(self,parent):
i = 0
radio_value = []
if self.box_value.get() in self.choices.keys():
radio_value = self.choices[self.box_value.get()]
print radio_value
for t in radio_value:
i = i+1
b = Radiobutton(self, text=t, variable=self.v, value=t)
b.grid(row = i, column = 0)
def main():
root = Tk()
root.geometry('250x250')
app1= App(root)
root.mainloop()
if __name__ == '__main__':
main()
は古い削除、再作成します。 –