python中tk封装一组无线按钮自定义控件
传递一组无线按钮名称的列表, 返回用户选择的是哪个选项:
import tkinter as tk
import threading
from tkinter import Menu, Frame, Label
class RatioButtons(tk.Frame):
'''对一组无线按钮的封装的自定义控件'''
def __init__(self, buttonNames:list[str], master=None, **kwargs):
'''buttonNames: 无线按钮的文本列表'''
super().__init__(master, **kwargs)
self.selectedVar = tk.StringVar()
self.selectedVar.set(buttonNames[0]) # 设置初始值为第一个无线按钮
for name in buttonNames:
radiobutton = tk.Radiobutton(self, text=name, variable=self.selectedVar, value=name)
radiobutton.pack(side=tk.TOP)
@property
def Selected(self)->str:
'''获取选中的无线按钮的字符串'''
return self.selectedVar.get()