我们正试图通过putty和SSH连接到一个覆盆子-pi。在raspberry-pi上,我们有一个python程序,它应该用Tkinter显示一个窗口。
我们希望窗口出现在电脑上,而不是树莓皮。
但是当我们通过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()当我们连接usin时,我们过去有一个错误“没有显示名称,没有$DISPLAY环境变量”,但是后来我们这样做了:导出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@raspberrypi https://www.raspberrypi.org/forums/viewtopic.php?f=67&t=63637
但我们不知道如何用油灰来连接。
发布于 2016-12-21 11:39:02
要使ssh -X有意义,您必须在您正在运行的系统上运行X (Xwindows)服务器。提到PuTTy意味着系统正在运行Microsoft。一切都没有丢失: Windows有免费的X服务器,如Xming和MobaXterm (后者仅供个人使用)。
https://stackoverflow.com/questions/41260901
复制相似问题