为了账号安全,请及时绑定邮箱和手机立即绑定

我应该在哪里放置mainloop?

我应该在哪里放置mainloop?

缥缈止盈 2021-03-03 21:13:15
我有一个用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()
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

在每个mainloop相互阻塞时,混合使用gui框架不是一个好主意,因此最好在一个或另一个中编写整个代码。


查看完整回答
反对 回复 2021-03-26
  • 2 回答
  • 0 关注
  • 463 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号