[英]Inheriting methods from a Frame Class, in a toplevel widget Class
Currently, I need to access the methods and instance variables in a toplevel
class from a ttk.Frame
class; 当前,我需要从
ttk.Frame
类访问toplevel
类中的方法和实例变量。 the program calculates certain values inside the ttk.Frame
class, then, I want to be able to use some of the functions used to calculate those previous values from the ttk.Frame
, in the 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
So, pretty much, what I want to be able to do is something like: 所以,差不多,我想做的是:
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()
You need a bog-standard object, not inheritance. 您需要一个沼泽标准对象,而不是继承对象。
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.