我正在尝试创建一个包含触摸屏键盘的Tkinter应用程序,并将运行Raspberry Pi。我找到了一个名为Matchbox-keyboard的屏幕键盘。
我的问题是:有没有办法去嵌入"这个键盘变成了由Tkinter创建的GUI?我想嵌入键盘,使其在父窗口的底部打开。
到目前为止,我能想到的只有:
subprocess.Popen(['matchbox-keyboard'])
有效,但会在单独的窗口中打开。
以下是我的代码示例。请记住,我还没有编写文本字段的get()
函数,或者其他任何函数。
from tkinter import *
from tkinter import ttk
import subprocess
process_one = subprocess.Popen(['matchbox-keyboard'])
root = Tk()
bottomframe = Frame(root)
bottomframe.pack(side = BOTTOM)
root.title("PinScore")
L0 = Label(root, text = "Welcome to PinScore!")
L0.pack(side = TOP)
L1 = Label(root, text = "Initials:")
L1.pack(side = LEFT)
E1 = Entry(root, bd = 5)
E1.pack(side = RIGHT)
L2 = Label(root, text = "High Score:")
L2.pack( side = RIGHT)
E2 = Entry(root, bd = 5)
E2.pack(side = RIGHT)
B = Button(bottomframe, text = "Enter High Score")
B.pack(side = BOTTOM)
root.mainloop()
答案 0 :(得分:1)
答案简短:不,但有希望,需要相当多的工作。
根据the github,它是用gtk制作的。然后问题就变成了#34;我可以在我的tkinter程序中放一个gtk对象吗?"。据我所知(以及很多谷歌搜索),没有办法在Tkinter中嵌入gtk功能。您可能想要尝试pyGTK,因为这些将更容易集成(我知道这是可能的)。在你进一步完成项目之前,我可能会建议你。
答案 1 :(得分:0)
使用PyGTK! github包含gtk源代码,您可以这样做。
实际上,更多地关注github,你可能不需要这样做。键盘允许使用命令行选项,例如-v,--override Absolute positioning on the screen
和-g,--geometry <HxW.y.x> Specify keyboard's geometry
(取自github)。您无法控制z位置(无论是在窗口的上方还是下方)。
如果你真的想要嵌入式的感觉,github还说你可以将它嵌入到gtk中并指向examples/matchbox-keyboard-gtk-embed.c
这可能就是你想要的。你可能可以把它翻译成pygtk。我找到了this,它谈到了XEMBED。我发现this too实际上嵌入了一些东西。最后,我会指向the docs for gtk.socket。