为什么在 pi 4b 连接 DSI 触摸屏的 raspbian buster 上出现“_tkinter.TclError: no display name and no $DISPLAY environment variable”?

问题描述

我的main.py如下:

from tkinter import *
mainWin = Tk()
#widgets are added here.

# Prepare for clean exit on window close.
mainWin.protocol("WM_DELETE_WINDOW",close)

mainWin.mainloop()

当我这样做

sudo python3 main.py

...我在第 2 行收到以下错误

_tkinter.TclError: no display name and no $disPLAY environment variable

我在 main.py 的第 2 行之后插入了这个,试图让它工作:

if os.environ.get('disPLAY','') == '':
  print('no display found. Using :0.0')
  os.environ.__setitem__('disPLAY',':0.0')

...但后来我明白了:

_tkinter.TclError: Couldn't connect to display ":0.0"

我也尝试将 main.py 复制到桌面并在桌面上添加一个包含以下内容的 launch.command 文件

#!bin/bash
sudo python3 main.py

...然后做了...

chmod u+x /home/pi/Desktop/launch.command

然后我双击桌面上的 launch.command 图标,它将文件打开到记事本附件中,而不是提供执行文件的选项。

我正在尝试构建一个最终通过自动启动运行的 GUI,但现在只需要在 raspbian 桌面前面的屏幕上显示窗口,这样我就可以看到我需要做些什么来进一步完善它。

>

我是 python3 和 tkinter 的新手,只关注对它们有用的脚本和 YouTube 视频,没有任何这些明显的切线错误。任何有关让 mainWin 显示在 DSI 屏幕上的帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)