我应该在哪里放置mainloop?

我有一个用IDLE3.3和tkinter编写的程序,我不知道将mainloop()放在哪里。该程序将创建一个系统托盘图标,如果您在上下文菜单中单击“新笔记”,该图标会创建一个小笔记。注意的末尾是否有“ self.root.mainloop()”行。init(),则显示注释,但仅显示一个注释。如果我创建第二个音符,则第一个音符已死,并且没有任何其他反应。但是,如果我没有在初始化方法中调用mainloop(),我会看到创建了一些注释,因为它被打印在外壳中。所以问题是,我应该将mainloop放在哪里,以便每个新创建的notw都能显示并正常工作?很抱歉这个可能很愚蠢的问题,但我不知道。

from tkinter import *import sysfrom PyQt4.QtGui import *import threadingclass Note():
    yellow=["#e7e37c","#d9d574"]
    def __init__(self,noteset=None, properties=None):
        self.root=Tk()
        self.noteset=noteset
        self.properties=properties
        self.screen_width = self.root.winfo_screenwidth()      
        self.screen_height = self.root.winfo_screenheight()    
        print("No initial properties to load => creating new note")
        self.notecolor=self.yellow[0]
        self.gripcolor=self.yellow[1]
        self.root.overrideredirect(1) 
        self.text=""
        self.font="arial"
        self.fontsize=10  
        self.sizeX=250 
        self.sizeY=200
        self.posX=int(self.screen_width/2 - self.sizeX/2)   
        self.posY=int(self.screen_height/2 - self.sizeY/2)
        self.root.wm_geometry("%sx%s+%s+%s"   %(self.sizeX,  self.sizeY,  self.posX,  self.posY) )           
        self.root.wm_attributes("-topmost",1)
        self.GUI()
        self.bindings()
        self.root.mainloop()
    def bindings(self):
        self.frmGRIP.bind("<ButtonPress-1>", self.StartMove)
        self.frmGRIP.bind("<ButtonRelease-1>", self.StopMove)
        self.frmGRIP.bind("<B1-Motion>", self.OnMotion)
    def StartMove(self, event):
        self.startx = event.x
        self.starty = event.y
    def OnMotion(self, event):           
        mousex,mousey=self.root.winfo_pointerxy()
        self.root.geometry("+%s+%s" % (mousex-self.startx, mousey-self.starty))    def StopMove(self, event):
        self.posX = self.root.winfo_x()
        self.posY = self.root.winfo_y()


缥缈止盈
浏览 464回答 2
2回答

紫衣仙女

在每个mainloop相互阻塞时,混合使用gui框架不是一个好主意,因此最好在一个或另一个中编写整个代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python