我有一个基于 Tkinter 的 UI,我想显示一个在 Jython 中制作的甘特图(使用 swing)
问题是我不想有两个不同的窗口,一个用于 Tkinter UI,另一个用于 Jython 的甘特图。
有没有办法将这两个东西放在一个窗口中?
提前致谢。
最佳答案
我理解你的痛苦,但是 GUI 工具包管理自己的窗口,并且大多数时候,如果不使用操作系统特定的 native API,就不可能共享或嵌入窗口。
您可以创建一个小程序来在方框/矩形中显示您的 Swing 窗口,但 Tkinter 不附带可以显示网页或小程序的小部件。相反的过程是technically possible但我还没有看到任何现实世界的实际例子。
如果不需要功能,最好的选择是捕获窗口的输出(Java 示例: Swing: Obtain Image of JFrame )并在 Tkinter 上显示图形
import Image, ImageTk
im = Image.open('file_name').convert2byte()
tkimage = ImageTk.PhotoImage(im)
Tkinter.Label(root, image=tkimage).pack()
附注:
可以使用Jpype以相反的方式访问工具包。和 Jtkinter,但是基于 Tcl 的 Tkinter 和 Swing 之间的差异仍然很大,并且仍然无法解决这个问题。
关于python - 结合 Tkinter (Python) 和 Swing (Jython),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22066375/