我正在将tkinter的TOPLEVEL菜单栏中的按钮上的加速器添加到我最近正在研究的python项目中,并且进行了一些研究后,我找到了一个网站解释如何实现此目的。不幸的是,这不能激活该功能。
我一直想知道这是否是因为它绑定到按钮而不是功能本身。
<Button Grid.Column="1"
Foreground="White"
HorizontalAlignment="Center"
Margin="223,105,81,20"
x:Name="buttonSet"
Height="26"
Click="ButtonSet_Click"
Background="#7289da"
Width="90">
set
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" Value="#FF23FF00"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
不幸的是,加速器没有激活。我是Python的新手,如果这个问题很简单,请抱歉。
答案 0 :(得分:0)
您必须使用bind_all。
Accelerator
只是一个字符串,它将显示在菜单的右侧
Underline
-在所选索引下划线
tearoff
-布尔值以切换撕下功能
tearoff允许您分离用于创建主窗口的菜单 浮动菜单。如果您创建菜单,则会在菜单栏上看到虚线。 单击顶部菜单项时,显示顶部。如果单击那些虚线 菜单会撕裂并变为浮动状态。
from tkinter import *
def donothing(event=None):
filewin = Toplevel(root)
button = Button(filewin, text="Cool")
button.pack()
root = Tk()
menubar = Menu(root)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="Help Index",accelerator="Ctrl+H", command=donothing)
menubar.add_cascade(label="Help",underline=0 ,menu=helpmenu)
root.config(menu=menubar)
root.bind_all("<Control-h>", donothing)
root.mainloop()