在Python Gui中嵌入Linux程序?

2024-04-24 21:24:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的车建立一个类似于特斯拉模型S的触摸界面,我想在本机支持Spotify。我正在使用tkinter在Python中构建GUI,我想知道是否有一种方法可以在GUI的预定义框架内从GUI中启动linux程序(在本例中是Spotify)。我想我想这就像网页上的一个iframe。在

我知道这可能不是最好的方法,但我的车99%的时间都会离线,所以我需要支持离线流媒体,我可以从Spotify应用程序实现,而不是太多地使用他们的web API。在


Tags: 方法模型程序框架网页界面tkinterlinux
1条回答
网友
1楼 · 发布于 2024-04-24 21:24:34

Tkinter可以嵌入其他基于X11的应用程序,但前提是windows支持嵌入本身。在

诀窍是获取tkinter小部件的X窗口id,然后让其他程序写入该窗口id

据我所知,只有为数不多的程序可以实现这一点。xterm就是其中之一。我想我以前也用过mplayer。在

下面是一个使用xterm的非常简单的示例:

import tkinter as tk
import subprocess

root = tk.Tk()
root.geometry("400x400")

label = tk.Label(root, text="Example of xterm embedded in frame")
xterm_frame = tk.Frame(root)

label.pack(side="top", fill="x")
xterm_frame.pack(fill="both", expand=True, padx=20, pady=20)

xterm_frame_id = xterm_frame.winfo_id()
subprocess.call("xterm -into %d &" % xterm_frame_id, shell=True)

root.mainloop()

相关问题 更多 >