Python tkinter - 关闭新窗口

时间:2018-01-11 18:27:41

标签: python events tkinter

我做了这个程序,我建议先运行它。主要想法是弹出窗口,它应该在点击文本信息后弹出。这可以正常工作,而不是用户需要关闭此窗口,所以我在右上角创建了红色关闭按钮(带有线条的矩形)。单击此按钮后,新窗口将消失,但应保留带椭圆形的第一个窗口。 我需要关闭这个窗口的功能,我试图找到解决方案很长一段时间,但我无法做到。好吗?

import tkinter

class Desktop:

    def __init__(self):
        self.canvas = tkinter.Canvas()
        self.canvas.pack()
        x, y = 25,25
        for i in range(1,61):
            self.canvas.create_oval(x-10, y-10, x+10, y+10, fill='blue')
            self.canvas.create_text(x, y, text=i)
            x += 30
            if i%10==0:
                x = 25
                y += 40
        self.canvas.create_text(340, 150, text='info', font='arial 17', tags='info')
        self.canvas.tag_bind('info', '<Button-1>', self.window)

    def window(self, event):
        self.canvas.create_rectangle(40,40,310,220,fill='white')
        x, y = 75,100
        for i in range(1,9):
            self.canvas.create_rectangle(x-30,y-30,x+30,y+30)
            self.canvas.create_text(x,y,text='number ' + str(i), font='arial 9')
            x += 65
            if i == 4:
                x = 75
                y += 70
            self.rec = self.canvas.create_rectangle(310,40,290,60, fill="red", tags="cancel")
            self.line = self.canvas.create_line(310,40,290,60,310,60,290,40, tags="cancel")
            self.canvas.tag_bind('cancel', '<Button-1>', self.close)

    def close(self,event):
        #?
        print('should close this part of screen')

d = Desktop()

1 个答案:

答案 0 :(得分:0)

我在代码中使用的是:

\\s*

这可能是一个非常漫长的方式,但它每次都适合我。

编辑:现在考虑一下,根据你打开一个新框架的方式,def quit(self): root.destroy() self.quit() 就像我一样。