【发布时间】:2021-10-09 19:46:34
【问题描述】:
我想在单击清除按钮时清除条目小部件中的文本。但相反,我得到 TypeError: clear() missing 1 required positional argument: 'self'。 当我单击“保存”按钮时,我想再次从条目小部件中获取文本以进行进一步计算。 请给我指路..
mainframe.py
from tkinter import Frame
class MainFrame(Frame):
def __init__(self, *args, **kwargs):
Frame.__init__(self, *args, **kwargs)
def show(self):
self.lift()
customer_details.py
from tkinter import Frame, Entry, StringVar
from mainframe import MainFrame
class CustomerDetails(MainFrame):
def __init__(self, *args, **kwargs):
MainFrame.__init__(self, *args, **kwargs)
self.var_e = StringVar(None)
f1 = Frame(self)
f1.pack()
e = Entry(f1, textvariable=self.var_e)
e.pack()
操作.py
from tkinter import Frame, Button
from mainframe import MainFrame
from customer_details import CustomerDetails
class Operations(MainFrame):
def __init__(self, *args, **kwargs):
MainFrame.__init__(self, *args, **kwargs)
def clear(self):
self.var_e.set('')
def save(self):
self.var_e.get()
f2 = Frame(self)
f2.pack()
b1 = Button(f2, text='Clear', command=clear) # I am unable to call clear function here.
b1.pack()
b2 = Button(f2, text='Save', command=save)
b2.pack()
main.py
from tkinter import Tk, Frame
from customer_details import CustomerDetails
from operations import Operations
class main(Frame):
def __init__(self, *args, **kwargs):
Frame.__init__(self, *args, **kwargs)
f3 = Frame(self)
f3.pack()
customer_details_win = CustomerDetails(self)
operations_win = Operations(self)
customer_details_win.pack(in_ = f3)
operations_win.pack(in_ = f3)
customer_details_win.show()
operations_win.show()
if __name__ == "__main__":
root = Tk()
app = main(root)
app.pack()
root.mainloop()
【问题讨论】:
标签: python tkinter inheritance methods self