0
簡短版本: 使用tkinter控制它的小樹莓派機器人項目。 該腳本有效,但希望能夠在頭部碰到限位開關時控制身體,因此我創建了2個腳本在bash shell中一起運行。 這將創建2個TK窗戶,但只能控制取決於零件哪個窗口是活動 所以我想具有2個腳本1個tk的窗口中運行將解決這個所以我也跟着這樣的回答: How to Open Multiple Tkinter windows in one window在1個Tkinter窗口中運行2個.py腳本
腳本運行和我得到的1個窗口,但只註冊來自mycode2.py的鍵盤輸入,沒有任何來自mycode1.py
不知道如果我做錯了什麼或者這是可能的嗎?
如果有人可以給我,我會非常感激
感謝
mycode1.py
import time
import RPi.GPIO as gpio
import Tkinter as tk
import os
import random
from Tkinter import*
from headclass import Right
class Left(Frame):
def _init_(self, parent):
Frame._init_(self, parent, width=100, height=100)
self.config(bg='white')
class Body:
def __init__(self):
gpio.setmode(gpio.BOARD)
gpio.setwarnings(False)
self.y = 0
self.command = tk.Tk()
self.command.bind('<KeyPress>', self.key_input)
self.command.bind('<KeyRelease>', self.key_release)
self.command.mainloop()
# Define keyboard inputs
def key_input(self, event):
if ord(event.char) == 27:
gpio.cleanup()
quit()
key_press = event.char.lower()
if self.y == 0:
if key_press == 'w':
print 'W'
else:
pass
def key_release(self, event):
if self.y == 0:
self.stop_body()
else:
pass
# instantiate a Robot object to start the program
my_robot = Body()
if _name_ == "_main_":
root = Tk()
Left(root).pack(side=LEFT)
Right(root).pack(side=RIGHT)
root.mainloop()`
mycode2.py
import time
import RPi.GPIO as gpio
import Tkinter as tk
import os
from Tkinter import *
class Right(Frame):
def_init_(self, parent):
Frame._init_(self, parent, width=100, height=100)
self.config(bg='black')
class Head:
def __init__(self):
gpio.setmode(gpio.BOARD)
gpio.setwarnings(False)
self.x = 1
self.y = 0
self.command = tk.Tk()
self.command.bind('<KeyPress>', self.key_input)
self.command.bind('<KeyRelease>', self.key_release)
self.command.mainloop()
# DEFINE KEY INPUT
def key_input(self, event):
if ord(event.char) == 27:
gpio.cleanup()
quit()
key_press = event.char.lower()
if self.y == 0:
if key_press == 'n':
print 'N'
else:
pass
def key_release(self, event):
if self.y == 0:
self.stop_head()
else:
pass
# instantiate a Robot object to start the program
my_robot = Head()
https://stackoverflow.com/help/mcve –
嗨我縮短了代碼 – Sanchobob