Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tkinter无意中创建了两个窗口_Python_Python 3.x_Tkinter - Fatal编程技术网

Python tkinter无意中创建了两个窗口

Python tkinter无意中创建了两个窗口,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正在尝试使用tkinter在Python3中构建一个简单的计算器。计算器由一个ttk笔记本拆分,以将功能划分为多个组,每个笔记本框架(一旦我修复了这个)都应该是它自己的类。然而,当我运行给定的代码时,我得到了两个窗口:一个是笔记本+标签,但没有内容,另一个是完全空白的。如何初始化第二个窗口,如何停止它/将电池选项卡内容添加到电池选项卡?非常感谢您抽出时间 import tkinter as tk from tkinter import ttk from tkinter import * cl

我正在尝试使用tkinter在Python3中构建一个简单的计算器。计算器由一个ttk笔记本拆分,以将功能划分为多个组,每个笔记本框架(一旦我修复了这个)都应该是它自己的类。然而,当我运行给定的代码时,我得到了两个窗口:一个是笔记本+标签,但没有内容,另一个是完全空白的。如何初始化第二个窗口,如何停止它/将电池选项卡内容添加到电池选项卡?非常感谢您抽出时间

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

您的程序中应该只有一个
Tk()
(或从
Tk
派生的任何类)的实例
BatteryTab
应该是
Frame
的一个子类,您应该在
add\u battery\u tab()
中将它(而不是空框架)添加到
panel\u manager
中的
panel\u manager
。您的程序中应该只有
Tk()
的一个实例(或从
Tk
派生的任何类)
BatteryTab
应该是
Frame
的子类,您应该在
add\u battery\u tab()
中将该子类(而不是空框架)添加到
panel\u manager
中。