Tkinter使用热键

时间:2015-09-23 03:12:43

标签: python-3.x tkinter

新手问题。我试图通过热键更改文本小部件中的字体。 以便按下热键后的文本更改字体而不影响以前的文本。我假设这将使用标签完成,但没有找到任何在线解释这些内容的东西。

1 个答案:

答案 0 :(得分:1)

我不确定你想用什么“热键”来改变字体。
键盘上的大多数键都是为改变文本而设计的,所以我认为它是CTRL +“keyValue”。 ALT +“keyValue”也可以。

在下面显示的此示例中,必须切换CTRL键才能使用热键。热键为“1”,“2”和“3”。

from Tkinter import *

root = Tk()
root.title('Example')

textBox = Text(root, height=2, width=30)
textBox.pack(ipadx = 100, ipady=100)

ctrl_key = False

def key(event):
    global ctrl_key 

    if event.keysym == "Control_L":
        ctrl_key = not ctrl_key 

    if ctrl_key == True:
        textBox.configure(state="disabled")
        if event.char == "1":
            textBox.config(font=("Helvetica"))
        if event.char == "2":
            textBox.config(font=("Courier"))
        if event.char == "3":
            textBox.config(font=("Times"))
    else:
        textBox.configure(state="normal")

root.bind_all('<Key>', key)
root.mainloop()

此行禁用textBox,因此不能再添加任何文本。要启用,只需从“禁用”更改为“正常”。

textBox.configure(state="disabled")