- 论坛徽章:
- 0
|
大家好!python新人一个, 有个问题一直困扰中, 向各位请教! 先谢谢大家了!
如下面的代码所示:一个独立的信息确认的类InfoConfirm, 另外一个调用InfoConfirm的类CallerTest, 要在CallerTest中显示InfoConfirm的选择结果, 结果总是显示的默认值, 不是实际的选择值, 请教大家问题出在哪里?
from tkinter import *
class InfoConfirm():
def __init__(self, root=None):
self.win = Toplevel(root)
self.return_flag = -1
self.make_widgets()
def make_widgets(self):
Label(self.win, text='请确认信息正确吗?').pack()
Button(self.win, text='非常正确', command=(lambda: self.select_handle(1))).pack(side=RIGHT, anchor=NE)
Button(self.win, text='不正确', command=(lambda: self.select_handle(0))).pack(side=RIGHT, anchor=NE)
def select_handle(self, flag):
self.return_flag = flag
self.win.destroy()
def get_result(self):
return self.return_flag
class CallerTest(Frame):
def __init__(self, statistic_type=-1, parent=None):
Frame.__init__(self, parent)
self.parent = parent
self.pack()
self.makeform()
def confirm_handle(self):
instance = InfoConfirm() ###########
print(' 选择结果 confirm.get_result() =>', instance.get_result()) ############
def quit_handle(self):
self.parent.destroy()
def makeform(self):
self.frame1 = Frame(self)
self.frame1.pack()
Label(self.frame1, text='点击确认按钮, 弹出选择对话框, 请选择! ').pack(side=LEFT)
Button(self.frame1, text='确认', command=(lambda: self.confirm_handle())).pack(side=LEFT)
Button(self.frame1, text='退出', command=(lambda: self.quit_handle())).pack(side=LEFT)
if __name__ == '__main__':
root = Tk()
a = CallerTest(0, root)
root.mainloop()
|
|