python - Tkinter 弹出式键盘库

标签 python tkinter on-screen-keyboard

在我重新发明轮子之前。是否有(或多或少)用于 Tkinter 弹出键盘的标准库?

我需要一个弹出式数字键盘(0-9,.,...等)和一个全键盘(a-Z,A-Z,0-9,.,...等)。

我目前有一个漂亮的数字键盘,但(像往常一样)我的客户在我完成后告诉我他们也想要一个完整的键盘。

类似第二个问题,但主题相同。在这两个兄弟窗口之间弹出的正确方法是什么,以便无论您来回翻转多少次,它们都返回到原始父窗口。

最佳答案

我遇到了同样的问题,除了自己创建(或至少大幅改进)一个解决方案外,没有找到合适的解决方案。我用过

petemojeiko's virtual keyboard on GitHub

作为创建 my own solution 的起点.它需要可用于输入复杂的密码,因此它支持普通键盘支持的小写和大写字母、数字和(大多数)符号键。

但是,由于需要在小屏幕上显示,我将数字和符号放在第三层(如符号移位)。这给我带来的问题与您在问题的第二部分(在层之间切换)中遇到的问题基本相同。

我通过实现三个键盘(每层一个)并销毁一个特定的键盘以及包含它的框架并在每次我想在这些层之间更改(或切换到不同的条目小部件)时创建一个新键盘来解决它):

self.frame1.destroy()
self.frame2.destroy()
self.kb.destroy()

self.frame1 = ttk.Frame(self, width=480, height=280)
self.frame1.pack(side="top", pady=30)
self.kb = vKeyboard(attach=self.entry1,
                   x=self.entry1.winfo_rootx(),
                   y=self.entry1.winfo_rooty() + self.entry1.winfo_reqheight(),
                   keysize=self.keysize,
                   parent=self.frame1,
                   controller=self.controller,
                   enterAction=self.enterAction)

我还是 Python/Tkinter 的新手,所以其他人可能能够在不破坏父框架的情况下做到这一点,但这对我有用(即使在 Raspberry Pi 的有限资源上,它也不会导致任何问题)。

关于python - Tkinter 弹出式键盘库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22385416/

相关文章:

python - 只允许用户在 tkinter 中的文本小部件末尾键入文本

python - 从紧密循环内部排序算法可视化 : How to pull values to animate the canvas,

python - 在 Python Tkinter 中按下按钮后如何清除窗口?

c# - 为 Xamarin/Monogame 打开屏幕键盘

javascript - 如何捕获触摸设备的屏幕键盘 'keydown' 和 'keyup' 事件

python - 有没有办法从 scipy.stats.norm.fit 获取拟合参数的错误?

python - Django:计算平均值,并按子模型中的字段排序

python - CSV 到嵌套(分层)JSON - 使用 Python 标记父项

python - 如何处理启用 telegram bot 的错误?

c# - C#中使用按钮调用屏幕键盘