我正在使用Python。 当我想在tkinter中创建无边界菜单时,我的问题就开始了。经过一些研究,基本上不可能消除Windows菜单周围的那些浅灰色边框。
但是我注意到撕纸菜单没有边框,因为它们是浮动窗口。 因此,我想知道如何“替代”或仅显示这些浮动菜单而不是传统菜单。 这是我的起始代码段。
from tkinter import *
import tkinter as tk
import ttk
w = tk.Tk()
list = ['1','2','3','4','5']
var = StringVar(w)
otpionmenu1 = ttk.OptionMenu(w, var, list[0], *list)
otpionmenu1.place(relx=0.5, rely=0.5)
w.mainloop()
w.option_add("*TMenubutton*Menu*Type", 'tearoff')
我可以用这种的方式来撕下菜单(我想还不错,它们在各自的按钮下生成)。
但是现在有一个问题。如您所见,菜单现在显示为窗口。我要配置它。我想知道如何将其修改为窗口(添加一些事件,使其无法调整大小等)。我能怎么做? 请注意,该窗口的标题为“!菜单”。
谢谢。
menu.config()
给出:('selectcolor', 'selectColor', 'Background', <color object: '#000000'>, <color object: '#000000'>) ('borderwidth', 'borderWidth', 'BorderWidth', <pixel object: '1'>, <pixel object: '1'>) ('activeforeground', 'activeForeground', 'Background', <color object: '#000000'>, <color object: '#000000'>) ('fg', '-foreground') ('type', 'type', 'Type', <index object: 'normal'>, <index object: 'normal'>) ('background', 'background', 'Background', <border object: '#d9d9d9'>, <border object: '#d9d9d9'>) ('foreground', 'foreground', 'Foreground', <color object: '#000000'>, <color object: '#000000'>) ('disabledforeground', 'disabledForeground', 'DisabledForeground', <color object: '#a3a3a3'>, <color object: '#a3a3a3'>) ('title', 'title', 'Title', '', '') ('takefocus', 'takeFocus', 'TakeFocus', '0', '0') ('bd', '-borderwidth') ('font', 'font', 'Font', <font object: 'TkMenuFont'>, <font object: 'TkMenuFont'>) ('activebackground', 'activeBackground', 'Foreground', <border object: '#ececec'>, <border object: '#ececec'>) ('bg', '-background') ('relief', 'relief', 'Relief', <index object: 'raised'>, <index object: 'raised'>) ('tearoff', 'tearOff', 'TearOff', 1, 0) ('cursor', 'cursor', 'Cursor', <cursor object: 'arrow'>, <cursor object: 'arrow'>) ('tearoffcommand', 'tearOffCommand', 'TearOffCommand', '', '') ('activeborderwidth', 'activeBorderWidth', 'BorderWidth', <pixel object: '1'>, <pixel object: '1'>) ('postcommand', 'postCommand', 'Command', '', '')