使用X11经SSH连接树莓派时如何将GUI显示在树莓派设备上
树莓派SSH X11连接时GUI输出到本地屏幕的实现方案
- 先在树莓派本地接显示器的终端中执行
echo $DISPLAY,记录返回的默认显示端口,通常为:0或:0.0 - 通过SSH连接到树莓派后,先在SSH终端内执行以下命令配置输出目标:
此处export DISPLAY=:0:0替换为你之前记录的实际显示端口即可 - 如果运行程序时提示X Server权限错误,额外执行
xhost +local:开放本地图形服务访问权限 - 若树莓派未启用图形桌面,可执行
sudo raspi-config,依次进入「系统选项」-「引导/自动登录」,选择图形桌面自动登录模式,重启后生效
你提供的现有代码存在逻辑错误,无限while循环放在window.mainloop()之前会导致主线程永久阻塞,永远无法启动GUI渲染,且e.pack缺少调用括号,需要调整为子线程运行输入逻辑,修改后的参考代码如下:
from tkinter import * import tkinter as tk import threading def input_thread(): while True: textcommand = input('Enter Your Text: ') e.delete(0, END) e.insert(0, textcommand) window = tk.Tk() window.geometry("400x200") Font_tuple = ("Comic Sans MS", 15, "bold") e = tk.Entry(window, justify = 'center') e.configure(bg='white', font = Font_tuple) window.configure(bg='black') e.place(x = 325, y = 400, width = 900, height = 40) e.pack() width= window.winfo_screenwidth() height= window.winfo_screenheight() window.geometry("%dx%d" % (width, height)) window.title("Escape Fond du Lac") # 启动输入子线程 threading.Thread(target=input_thread, daemon=True).start() window.mainloop()
配置好DISPLAY变量后直接运行python3 你的脚本文件名.py,GUI界面就会输出到树莓派连接的本地显示器上。
内容的提问来源于stack exchange,提问作者Isaiah lucas
相关产品推荐
相关产品推荐

