繁体   English   中英

通过SSH连接到raspberry-pi的计算机,无法在计算机或raspberry-pi上显示Tkinter窗口

[英]Computer connected via SSH to raspberry-pi, can't show Tkinter-window on computer or raspberry-pi

我们正在尝试通过腻子和SSH连接树莓派。 在树莓派上,我们有一个python程序,该程序应显示带有Tkinter的窗口。

我们希望窗口显示在计算机上,而不是raspberry-pi。

但是,当我们通过SSH运行程序时,我们无法显示任何窗口。 如果我们从raspberry-pi运行程序,它将很好地工作并显示窗口(但在raspberry-pi上)。

这是我们的程序:

from Tkinter import *
import RPi.GPIO as GPIO
import time

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
GPIO.setup(25, GPIO.OUT)

class App:

    def __init__(self, master):
        frame = Frame(master)
        frame.pack()
        self.check_var1 = BooleanVar()
        check = Checkbutton(frame, text='red',
                 command=self.update1,
                 variable=self.check_var1, onvalue=True, offvalue=False)
        check.grid(row=1)


        self.check_var2 = BooleanVar()
        check = Checkbutton(frame, text='green',
                 command=self.update2,
                 variable=self.check_var2, onvalue=True, offvalue=False)
        check.grid(row=3)



        self.check_var3 = BooleanVar()
        check = Checkbutton(frame, text='blue',
                 command=self.update3,
                 variable=self.check_var3, onvalue=True, offvalue=False)
        check.grid(row=5)


        self.check_var4 = BooleanVar()
        check = Checkbutton(frame, text='red2',
                 command=self.update4,
                 variable=self.check_var4, onvalue=True, offvalue=False)
        check.grid(row=7)

    def update1(self):
        GPIO.output(18, self.check_var1.get())

    def update2(self):
        GPIO.output(23, self.check_var2.get())

    def update3(self):
        GPIO.output(24, self.check_var3.get())

    def update4(self):
        GPIO.output(25, self.check_var4.get())

root = Tk()
root.wm_title('On / Off Switch')
app = App(root)
root.geometry("1920x1080+0+0")
root.mainloop()

当我们使用SSH连接我们时,我们曾经遇到错误“没有显示名称和没有$ DISPLAY环境变量”,但是后来我们做到了: export DISPLAY =:0.0

现在我们有一个新错误:

> pi@raspberrypi:~ $ sudo python gui_switch.py
No protocol specified
No protocol specified
Traceback (most recent call last):
  File "gui_switch.py", line 88, in <module>
    root = Tk()
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1813, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: couldn't connect to display ":0.0"

本教程(下面的链接)建议连接一些-X: ssh -X pi @ raspberryphttps://www.raspberrypi.org/forums/viewtopic.php?f=67&t=63637

但是我们不知道如何使用腻子那样进行连接。

为了使ssh -X有意义,您必须在要从ssh运行的系统上运行X(Xwindows)服务器。 提及PuTTy表示系统正在运行Microsoft Windows。 一切都不会丢失:有免费的Windows X服务器,例如Xming和MobaXterm(后者免费供个人使用)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM