如何在Tkinter框架内运行程序?

时间:2015-02-20 04:09:20

标签: python linux tkinter raspberry-pi

我正在尝试创建一个包含触摸屏键盘的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()

2 个答案:

答案 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