从按钮命令调用的函数和正常调用有什么不同?(Python2 tkinter)

2024-10-06 12:38:19 发布

您现在位置:Python中文网/ 问答频道 /正文

这里我定义了两个类:

from Tkinter import *

class Two:
    def __init__(self):
        self.main2 = Tk()
        self.mainFrame2 = Frame(self.main2)
        self.mainFrame2.pack()
        self.x= BooleanVar()
        self.cb = Checkbutton(self.mainFrame2,text='tick', variable = self.x)
        self.button2 = Button(self.mainFrame2,text ='button', command = self.Command)

        self.cb.pack()
        self.button2.pack()
        self.main2.mainloop()
    def Command(self):
        print self.x.get()
class One:
    def __init__(self):
        self.main = Tk()
        self.mainFrame = Frame(self.main)
        self.mainFrame.pack()
        self.button = Button(self.mainFrame,text ='Ok', command = lambda: self.callTwo())
        self.button.pack()
        self.main.mainloop()

    def callTwo(self):
        Two()

当我直接打电话

Two()

勾选复选框,点击按钮,打印1

但如果我打电话

One()

点击Ok,勾选复选框,点击按钮,打印0

为什么?我想调用One()并将其打印为1


Tags: textselfinitmaindefbuttononeframe