[英]Python - Tkinter - Widgets created inside a class inherited from Toplevel() appear in a different frame OUTSIDE the class, Toplevel() class is empty
[英]Inheriting methods from a Frame Class, in a toplevel widget Class
當前,我需要從ttk.Frame
類訪問toplevel
類中的方法和實例變量。 該程序將在ttk.Frame
類中計算某些值,然后,我希望能夠使用某些函數來從toplevel
的ttk.Frame
計算這些先前的值。
class ReservoirDataFrame(ttk.Frame):
def __init__(self, parent, controller):
ttk.Frame.__init__(self, parent)
self.controller = controller
self.grid(row=0, column=0, sticky="nsew")
self.grid_rowconfigure(0, weight=1)
self.grid_columnconfigure(0, weight=1)
self.main()
...
def main(self):
pass
def fluid_properties_calculate(self):
pass
所以,差不多,我想做的是:
class CurveIPR(tk.Toplevel, ReservoirDataFrame):
def __init__(self, controller):
tk.Toplevel.__init__(self, controller)
ReservoirDataFrame.__init__(self, controller)
self.controller = controller
self.reservoir_data_frame = ReservoirDataFrame(self)
self.minsize(600, 480)
self.title("Curva de oferta IPR (Inflow performance relationship)")
self.grid_rowconfigure(0, weight=1)
self.grid_columnconfigure(0, weight=1)
self.grab_set()
self.main()
def main(self):
self.reservoir_data_frame.fluid_properties_calculate()
您需要一個沼澤標准對象,而不是繼承對象。
class CurveIPR(tk.Toplevel):
def __init__(self, controller):
tk.Toplevel.__init__(self, controller)
self.controller = controller
self.reservoir_data_frame = ReservoirDataFrame(self, controller)
# you really ought to grid it here, not in ReservoirDataFrame
self.minsize(600, 480)
self.title("Curva de oferta IPR (Inflow performance relationship)")
self.grid_rowconfigure(0, weight=1)
self.grid_columnconfigure(0, weight=1)
self.grab_set()
self.main()
def main(self):
self.reservoir_data_frame.fluid_properties_calculate()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.