框架内有标签的Python类

时间:2018-08-12 16:09:32

标签: python tkinter

我正在尝试制作自己的tkinter小部件。

现在,我正在研究自定义单选按钮。这个想法是让每个单选按钮实际上是一个框架,框架内部是一个靠近标签的画布。

画布是单击时填充的圆圈,标签显示指示单选按钮控制内容的文本。

我为此类小部件创建了一个类,如下所示。

class Custom_RadioButton(Frame):
    def __init__(self, *args):
        Frame.__init__(self, *args)

我在弄清楚如何在此框架中添加标签和画布时遇到了麻烦,因为它实际上没有像Label.__init__(self, Framename, *args)这样的名称可以放置

谢谢

1 个答案:

答案 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