Python tkinter непреднамеренно создает два окна - PullRequest
1 голос
/ 12 ноября 2019

Я пытаюсь построить простой калькулятор в Python 3, используя tkinter. Калькулятор разделен на блокнот ttk, чтобы разделить функциональность на группы, и каждый кадр блокнота должен (как только я это исправлю) иметь свой собственный класс. Однако, когда я запускаю данный код, я получаю два окна: одно с блокнотом + вкладки, но без содержимого, а другое совершенно пустое. Что я делаю, чтобы инициализировать второе окно, и как мне остановить его / добавить содержимое BatteryTab на вкладку батареи? Большое спасибо за ваше время!

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):
        tab_frame = Frame(self.panel_manager)
        self.panel_manager.add(tab_frame, text = title)
        self.panel_manager.pack()
        battery_tab = BatteryTab()
        self.panel_manager.pack()

    def run(self):
        self.mainloop()


class BatteryTab(tk.Tk):
    def __init__ (self):

        tk.Tk.__init__(self)
        #Capacity Calculator
        capacity_calcf = LabelFrame(self, text = "Battery Capacity Calculator").grid(column = 0)
        test = Label(capacity_calcf, text = "testing, testing, 1,2,3")
        #C Rating Calculator
        c_rating_calcf = LabelFrame(self, text = "Required C Rating Calculator").grid(column = 1)

root_window = PanelManager()
root_window.run()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...