我正在尝试制作自己的tkinter小部件。
现在,我正在研究自定义单选按钮。这个想法是让每个单选按钮实际上是一个框架,框架内部是一个靠近标签的画布。
画布是单击时填充的圆圈,标签显示指示单选按钮控制内容的文本。
我为此类小部件创建了一个类,如下所示。
class Custom_RadioButton(Frame):
def __init__(self, *args):
Frame.__init__(self, *args)
我在弄清楚如何在此框架中添加标签和画布时遇到了麻烦,因为它实际上没有像Label.__init__(self, Framename, *args)
这样的名称可以放置
谢谢
答案 0 :(得分:1)
您可以执行以下操作:
import tkinter as tk # <-- avoid star imports
class Custom_RadioButton(tk.Frame):
def __init__(self, master, *args, **kwargs):
super().__init__(self, master, *args, **kwargs)
self.canvas = tk.Canvas(self) # place a canvas into self (a Frame)
self.canvas.pack(expand=True, fill=tk.BOTH)
self.label = tk.Label(self.canvas, text='clickme') # place a label in self.canvas
self.canvas.create_oval(.....) # draw a circle on self.canvas