鼠标进入组件事件
def enter(self,event):
event.widget[‘bg’] = list(self.colorthemes.values())[self.themesvar.get()][1] #背景颜色改变
return
鼠标离开组件事件
def leave(self,event):
event.widget[‘bg’] = list(self.colorthemes.values())[self.themesvar.get()][0] #背景颜色还原
return
下面为窗体移动的方法
self.xr = 0
self.yr = 0
def setxy(self,event):
self.xr = event.x
self.yr = event.y
return
def resize(self,event):
self.root.geometry(‘+{0}+{1}’.format(self.root.winfo_x()+event.x-self.xr,self.root.winfo_y()+event.y-self.yr))
return
解释一下:
当按钮被按下,即触发
setxy
方法,它会记录下按下鼠标时鼠标的坐标。
拖动它时,,将窗体的
x
坐标设为: 窗体x
坐标 + 拖动后的x
坐标 - 按下鼠标时的x
坐标,
y
坐标也一样。
即可达到拖动窗体的效果。
点击菜单的颜色选项后,设置所有组件的颜色
def setcolor(self):
self.includes = [self.titleframe,self.icon,self.title,self.sets,self.quit,self.text] #列出所有组件
for r in self.includes:
r.configure(bg=list(self.colorthemes.values())[self.themesvar.get()][0]) #设置组件的颜色
return
弹出设置菜单
def postsetsmenu(self,event):
self.setsmenu.post(event.x_root,event.y_root)
return
调用
menu
菜单的post
方法使菜单弹出
保存文件
def save(self,name,text):
#以标题命名保存文件
with open(‘notes/{0}.txt’.format(name),‘w’) as f:
f.write(text) #写入文件
return
打开同路径下的
notes
文件夹保存文件
卸载窗体
def quitapp(self,event):
self.root.destroy() #销毁窗体
return