python中tk封装一组无线按钮自定义控件

发布时间 2023-07-18 10:45:46作者: 顺其自然,道法自然

传递一组无线按钮名称的列表, 返回用户选择的是哪个选项:

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()