免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1773 | 回复: 1
打印 上一主题 下一主题

tkinter:如何获取和使用独立窗口类的值? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-02-25 16:28 |只看该作者 |倒序浏览
大家好!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()


论坛徽章:
0
2 [报告]
发表于 2017-02-25 22:56 |只看该作者
谢谢大家关注, 已搞掂.
方法: 
在行
         self.make_widgets()
增加一行
 self.win.wait_window()
即可.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP