1)GUIアプリを起動すると、デフォルトでアクティブになる3つのttk.Radiobuttonsのいずれかを設定する必要があります。
どうすればいいのですか?
2)ttk.Radiobuttonsの1つがユーザーによってアクティブ化/クリックされたかどうかも確認する必要があります。
どうすればいいのですか?
rb1 = ttk.Radiobutton(self.frame, text='5', variable=self.my_var, value=5)
rb2 = ttk.Radiobutton(self.frame, text='10', variable=self.my_var, value=10)
rb3 = ttk.Radiobutton(self.frame, text='15', variable=self.my_var, value=15)
self.rb1.grid(row=0)
self.rb2.grid(row=1)
self.rb3.grid(row=2)
self.my_var.set(1)
を使用して、デフォルトのRadioButtonとしてtext='5'
を使用してラジオボタンを設定します。
選択したものを取得するには、関数を呼び出す必要があります
rb1 = ttk.Radiobutton(self.frame, text='5', variable=self.my_var, value=5,command=self.selected)
rb2 = ttk.Radiobutton(self.frame, text='10', variable=self.my_var, value=10,command=self.selected)
rb3 = ttk.Radiobutton(self.frame, text='15', variable=self.my_var, value=15,command=self.selected)
self.rb1.grid(row=0)
self.rb2.grid(row=1)
self.rb3.grid(row=2)
def selected(self):
if self.my_var.get()==5:
"do something"
Elif self.my_var.get()==10:
"do something"
else:
"do something"
最初の質問に関しては、便利で簡単な方法はinvoke
メソッドを呼び出すことです。
rb2.invoke()
これにより、このボタンに関連付けられているcommand
も実行されることに注意してください。
Ttk :: radiobutton invoke document を参照してください。
Gogoの回答に何かを追加しているだけですが、評判が十分でないためコメントできません。
ラジオボタンまたはプログラムが変数を認識しない前に、self.my_var=tk.IntVar()
を追加します。詳細については、 変数クラス を参照してください。
たとえば、私の場合、StringVar()が必要です。これはpython 3. * tkinter
をTkinter
に変更しますpython 2(私はそうではありません100%確実に)
import tkinter as tk
from tkinter import ttk
class XFile_Page(tk.Frame):
...
self.joinType = tk.StringVar()
self.rbLeft = ttk.Radiobutton(self.frameRadioButtons, text='left', variable=self.joinType, value='left',command=self.RadioBtnSelected)
self.rbRight = ttk.Radiobutton(self.frameRadioButtons, text='right', variable=self.joinType, value='right',command=self.RadioBtnSelected)
self.rbLeft.grid(row=0)
self.rbRight.grid(row=1)
#select the rbLeft radiobutton
self.rbLeft.invoke()
def RadioBtnSelected(self):
print(self.joinType.get())
_rb1.state['selected']
_を使用してデフォルトを_rb1
_に設定し、self.my_var.get()
を使用してラジオボタンの値(つまりテキスト変数)を取得できます。