【发布时间】:2018-12-06 08:28:48
【问题描述】:
我正在使用 python 中的 tkinter 库开发键盘应用程序。我做了一个键盘。我想要的是突出显示一个键,然后单击箭头键我想更改该突出显示的键。这是我的键盘代码。
from tkinter import *
import tkinter
Keyboard_App = tkinter.Tk()
def select(value):
if value == "<-":
input = entry.get("1.0", 'end-2c')
entry.delete("1.0", END)
entry.insert("1.0", input, END)
elif value == " Space ":
entry.insert(tkinter.END, ' ')
elif value == "Tab":
entry.insert(tkinter.END, ' ')
else:
entry.insert(tkinter.END, value)
buttons = [
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '=',
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '<-',
'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', '"',
'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/', 'SHIFT',
' Space ',
]
entry = Text(Keyboard_App, width=97, height=8)
entry.grid(row=1, columnspan=15)
varRow = 2
varColumn = 0
for button in buttons:
command = lambda x=button: select(x)
if button != " Space ":
tkinter.Button(Keyboard_App, text=button, width=5, bg="#000000", fg="#ffffff",
activebackground="#ffffff", activeforeground="#000000", relief="raised", padx=12,
pady=4, bd=4, command=command).grid(row=varRow, column=varColumn)
if button == " Space ":
tkinter.Button(Keyboard_App, text=button, width=60, bg="#000000", fg="#ffffff",
activebackground="#ffffff", activeforeground="#000000", relief="raised", padx=4,
pady=4, bd=4, command=command).grid(row=6, columnspan=16)
varColumn += 1
if varColumn > 10:
varColumn = 0
varRow += 1
Keyboard_App.mainloop()
【问题讨论】:
-
是什么决定了键盘上的哪个键最初被突出显示(即,什么确定了初始位置)?
-
您是否打算让用户也能够输入文本小部件?
-
@martineau 它可以是任意键。
-
是的,我愿意@Bryan
-
如果用户正在输入然后按下箭头键,您期望会发生什么?它会在文本小部件中移动光标,还是突出显示一个按钮?
标签: python tkinter tkinter-layout