Python简易记事本原形程序

Python简易记事本原形程序

"""
   简易记事本原形程序(主菜单),本程序不需要重定义Root,直接给窗口添加菜单,
"""

from sprites import *
from tkinter.scrolledtext import ScrolledText

screen = Screen()
screen.resizable()
root = screen._root
root._canvas.pack_forget()    # 把屏幕画布给隐藏了
root.config(bg='#00ffff')     # 这是TK窗口的背景颜色了

# 创建一个顶级菜单
menubar = TK.Menu(root)
 
# 创建一个下拉菜单“文件”,然后将它添加到顶级菜单中
filemenu = TK.Menu(menubar, tearoff=False)
filemenu.add_command(label="打开", command=lambda:showinfo('hi',''))
filemenu.add_command(label="保存", command=lambda:showinfo('hi',''))
filemenu.add_separator()
filemenu.add_command(label="关于", command=lambda:showinfo('www.lixingqiu.com','本程序基于Python海龟画图'))
filemenu.add_command(label="退出", command=lambda:root.destroy())
menubar.add_cascade(label="文件", menu=filemenu)
 
# 创建另一个下拉菜单“编辑”,然后将它添加到顶级菜单中
editmenu = TK.Menu(menubar, tearoff=False)
editmenu.add_command(label="剪切", command=lambda:showinfo('hi',''))
editmenu.add_command(label="拷贝", command=lambda:showinfo('hi',''))
editmenu.add_command(label="粘贴", command=lambda:showinfo('hi',''))
menubar.add_cascade(label="编辑", menu=editmenu)
 
# 显示菜单
root.config(menu=menubar)

stext2 = ScrolledText(master=root,bg='white',font=('新宋体',12,'normal'))
stext2.tag_configure("sel", background="skyblue")                   # 选择的时候为天蓝色
stext2.configure(undo=True,autoseparators=True, maxundo=-1)         # 让撤销发生作用
stext2.pack(expand=1,fill='both')
stext2.insert(TK.END, '风火轮编程')

# 给stext2加右键菜单
popup_stext2 = TK.Menu(screen._root, tearoff=0)
popup_stext2.add_command(label="撤销 Undo",accelerator="Ctrl+Z",command=lambda: stext2.event_generate("<>"))
popup_stext2.add_command(label="重做 Redo",accelerator="Ctrl+Y",command=lambda: stext2.event_generate("<>"))
popup_stext2.add_separator()
popup_stext2.add_command(label="复制 Copy",accelerator="Ctrl+C",command=lambda: stext2.event_generate("<>"))
popup_stext2.add_command(label="剪切 Cut",accelerator="Ctrl+X",command=lambda: stext2.event_generate("<>"))
popup_stext2.add_command(label="粘贴 Paste",accelerator="Ctrl+V",command=lambda: stext2.event_generate("<>"))
popup_stext2.add_separator()
popup_stext2.add_command(label="全选 Select All",accelerator="Ctrl+A",command=lambda: stext2.event_generate("<>"))
popup_stext2.add_command(label="清空",command=lambda: stext2.delete('1.0', TK.END) )
popup_stext2.add_command(label="打开主页",command=lambda:os.system('explorer https://www.lixingqiu.com'))

def do_popup_stext2(event):
    # 显示stext2的右键菜单
    try:
        popup_stext2.tk_popup(event.x_root, event.y_root+10, 0)
    finally:        
        popup_stext2.grab_release()

stext2.bind("", do_popup_stext2)

screen.mainloop()

李兴球

李兴球的博客是Python创意编程原创博客

评论已关闭。