如何解决Tkinter中的标题栏菜单
我认为我们大多数人都必须已经看到命令提示符(windows),以及如何打开它并单击它的图标并显示菜单。我们可以用tkinter做类似的事情吗?这不是正常的菜单栏。
这是命令提示符之一的说明。
解决方法
这只是解决方法的一个例子,而无需您自己进行所有窗口管理。当然,它需要改进,但首先:Popup stolen from
import tkinter as tk
from PIL import Image,ImageTk
def popup(event):
popup_menu.tk_popup(event.x_root,event.y_root,0)
def set_icon():
global top,popup
top = tk.Toplevel(root)
top.overrideredirect(1)
top.attributes('-topmost',True)
offset = 30
x,y = root.winfo_rootx(),root.winfo_rooty()-offset
width,height = offset,offset
top.geometry("%dx%d+%d+%d" % (width,height,x,y))
my_label = tk.Label(top,image=photo)
my_label.pack(fill='both')
global popup_menu
popup_menu = tk.Menu(top,tearoff=0)
popup_menu.add_command(label="Delete",command=lambda :print('del'))
popup_menu.add_command(label="Select All",command=lambda :print('sel'))
top.bind("<Button-1>",popup)
def grab(event):
top.geometry(f'+{event.x+10}+{event.y+2}')
root=tk.Tk()
ico = Image.open('prac_img/p2.png')
photo = ImageTk.PhotoImage(ico)
root.iconphoto(False,photo)
#root.wm_iconphoto(False,photo)
root.bind('<Configure>',grab)
root.update_idletasks()
set_icon()
root.mainloop()
另一种方法是编写自己的标题栏,并使用overrideredirecr(1)
进行编码,这将使系统的窗口管理器无法修饰您的窗口。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。