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
2.4 绑定事件
绑定拖动事件
self.icon.bind(‘’,self.setxy)
self.icon.bind(‘’,self.resize)
设置按钮绑定单击事件,调用 self.postsetsmenu()
方法弹出菜单
self.sets.bind(‘’,self.postsetsmenu)
关闭按钮绑定单击事件,调用 self.quitapp()
方法卸载窗体
self.quit.bind(‘’,self.quitapp)
给所有组件绑定鼠标进入、离开事件
self.root.bind_all(‘’,self.enter)
self.root.bind_all(‘’,self.leave)
2.5 实例化GUI
利用以下代码,在程序运行时实例化GUI界面
if name == ‘main’:
gui(x=100,y=100) #实例化GUI
在菜单的 新建 按钮中,也可以调用 start
函数实例化多个GUI界面,达到多个便签的效果
from tkinter import * #导入tkinter库
class gui: #定义class类,GUI界面
#__init__方法,导入类时自动执行这里的语句
def init(self,x=100,y=100):
self.xr = 100
self.yr = 100
self.colorthemes = {“yellow”:[“#FFFACD”,“#F0E68C”],“blue”:[“#98F5FF”,“#00E5EE”],“red”:[“#E9967A”,“#EE6363”],“green”:[“#90ee90”,“#32CD32”]} #主题的字典
self.setgui(x,y) #调用self.setgui()方法做GUI界面
#GUI界面
def setgui(self,x,y):
self.root = Tk() #窗口
self.root.title(‘jnote’) #窗口标题
self.root.geometry(‘200x200+{0}+{1}’.format(x,y)) #改变窗口位置
self.root.wm_attributes(“-topmost”, True) #窗口总在最前
s