私たちはパテとSSHを介してラズベリーパイに接続しようとしています。 raspberry-piにはPythonプログラムがあり、Tkinterでウィンドウを表示する必要があります。コンピュータがSSHを介してラズベリーパイに接続されていて、コンピュータ上のTkinterウィンドウまたはラズベリーパイを表示できません
ラズベリー-piではなく、ウィンドウがコンピュータに表示されます。
しかし、私たちはSSH経由でプログラムを実行するとウィンドウを表示できません。それはラズベリーパイからプログラムを実行すると、うまく動作し、ウィンドウが表示されます(しかし、ラズベリー-pi上)。私たちはSSHをusin接続したときに
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()
、我々はエラー「表示名なしなし$ DISPLAY環境変数」 を持っていた。しかし、我々が行った: 輸出DISPLAY =
この
は、私たちのプログラムです。 :> [email protected]:~ $ 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"
このtuto:0.0
、今は、私たちは新しいエラーを持っています私は https://www.raspberrypi.org/forums/viewtopic.php?f=67&t=63637
のssh -Xパイの@ raspberrypしかし、我々はパテを使用してそのように接続する方法がわからない:(下のリンク)リアル、いくつかの-Xで接続することを示唆しています。
'DISPLAY =:0.0'はX11にローカルのUNIXソケットを使用するように指示します。 sshがX11を転送するように設定した場合(ssh -Xまたはパテの場合、sshの下の設定ツリーを展開し、X11/X11転送のチェックボックスをオンにします)、DISPLAYは適切なものに設定されます。しかし、あなたのワークステーションでXサーバを稼働させる必要があります。 Xmingwで十分です。 DISPLAY = localhost:10.0またはポート6010が実際にワークステーションのX11サーバーにトンネリングされている場所に似ているはずです。 (DISPLAY番号はポートマイナス6000です)。 – patthoyts