[英]Running 2 .py scripts in 1 Tkinter window
短版:使用tkinter控制树莓派机器人项目。 该脚本可以工作,但是希望能够在头部碰到限位开关时控制身体,因此我创建了2个脚本,可以在bash shell中一起运行。 这将创建2个tk窗口,但是只能根据哪个窗口处于活动状态来控制零件,所以我认为在1个tk窗口中运行2个脚本将解决此问题,所以我遵循以下答案: 如何在一个窗口中打开多个Tkinter窗口
脚本运行,我得到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()
设法找出一个不同的计划,仍然只有一个脚本,但是添加了它,而且不是100%,但是看到它是一个简单的机器人项目,我可以接受
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.