继承Tkinter LabelFrame的类不显示内容

时间:2019-11-14 01:38:36

标签: python python-3.x inheritance tkinter

正如标题所述,我创建了一个继承自tkinter的LabelFrame(BatteryCapacityLFrame)的类,并且我试图对其进行初始化,以使其显示为LabelFrame。但是,当我运行代码时,“电池”选项卡不会显示LabelFrame。我该如何解决这个继承问题?

代码:

import tkinter as tk
from tkinter import ttk
from tkinter import *

class PanelManager(tk.Tk):
    def __init__ (self):
        #initializing tkinter within initialization function
        tk.Tk.__init__(self)
        self.title("Combat Robotics Calculator")
        self.panel_manager = ttk.Notebook(self)
        self.add_battery_tab("Batteries")
        self.add_tab("Pulleys")
        self.add_tab("Drive System")
        self.add_tab("Weapon System")

    def add_tab(self, title):
        tab_frame = Frame(self.panel_manager)
        self.panel_manager.add(tab_frame, text = title)
        self.panel_manager.pack()

    def add_battery_tab(self, title):
        battery_tab = BatteryTab(self)
        self.panel_manager.add(battery_tab, text = title)
        self.panel_manager.pack()


    def run(self):
        self.mainloop()


class BatteryTab(tk.Frame):
        def __init__ (self, master):

            tk.Frame.__init__(self, master)
            #Capacity Calculator
            capacity_calcf = BatteryCapacityLFrame(self)
            capacity_calcf.grid(column = 1, row = 1, sticky = "news")

#I'm trying to initialize the class here, not sure what's going wrong
class BatteryCapacityLFrame(tk.LabelFrame):
    def __init__ (self, master):
        tk.LabelFrame.__init__(self, master)
        self.config(text = "Battery Capacity Calculator")


root_window = PanelManager()
root_window.run()

非常感谢您抽出宝贵的时间!

1 个答案:

答案 0 :(得分:0)

您需要在标签框架中添加一些东西才能显示出来。

class BatteryCapacityLFrame(tk.LabelFrame):
    def __init__(self, master):
        tk.LabelFrame.__init__(self, master)
        self.config(text="Battery Capacity Calculator")

        tk.Label(self, text='Test message.').grid()
相关问题