找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3005|回复: 0

[求助] tkinter如何获取和使用独立图形窗口的值

1

主题

1

帖子

1

积分

贫民

积分
1
buming 发表于 2017-2-25 16:40:31 | 显示全部楼层 |阅读模式
大家好!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()


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表