我有一个用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()
紫衣仙女
相关分类