我有一个用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()
添加回答
举报
0/150
提交
取消