1)我需要设置默认激活的三个ttk.Radiobuttons中的一个 当我开始我的gui app 我该怎么做?
2)我还需要检查一下我的ttk.Radiobuttons是不是
用户激活/点击。
我该怎么做?
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)
答案 0 :(得分:17)
使用self.my_var.set(1)
设置单选按钮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"
答案 1 :(得分:9)
关于你的第一个问题,一种方便直接的方法是调用invoke
方法:
rb2.invoke()
请注意,这也会运行与此按钮相关联的任何command
。
答案 2 :(得分:1)
您可以使用rb1.state['selected']
将默认值设置为rb1
和self.my_var.get()
以获取单选按钮的值(即文本变量)。
答案 3 :(得分:1)
我只是在Gogo的回答中添加了一些内容,但我无法发表评论,因为我没有足够的声誉。
在radiobuttons之前添加self.my_var=tk.IntVar()
,否则您的程序将不知道该变量。有关更多信息,请参阅The Variable Classes
例如,在我的情况下我需要一个StringVar():
这适用于python 3. *将tkinter
更改为Tkinter
for 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())