我目前正在为我的滑翔机制作一个小型Projekt。 Tkinter应用程序应该使用RPi自动启动,并打开一个名为XCSOAR的应用程序或只是退出。 它正在使用按钮,但由于我在飞机上没有鼠标,我需要将它绑定到按键。 它已经在Windows上工作了,但不在我的树莓派上。 我猜这是焦点问题?
from Tkinter import *
import os
class MainWindow:
def __init__(self, master):
frame = Frame(master)
master.configure(background="white")
master.overrideredirect(True)
master.geometry("{0}x{1}+0+0" .format(root.winfo_screenwidth(), root.winfo_screenheight()))
master.bind("<Up>", self.xcsoar1)
master.bind("<Down>", self.startx1)
frame.pack()
photo1=PhotoImage(file="XCS.gif")
self.button1 = Button(frame, image=photo1, command = self.xcsoar, background="white")
self.button1.image = photo1
self.button1.pack()
photo3=PhotoImage(file="center.gif")
self.center = Label(frame, image = photo3, background="white")
self.center.image = photo3
self.center.pack()
photo2=PhotoImage(file="RPi.gif")
self.button2 = Button(frame, image=photo2, command = self.startx, background="white")
self.button2.image=photo2
self.button2.pack()
def xcsoar(self):
os.system('xcsoar.exe')
root.destroy()
def startx(self):
root.destroy()
def xcsoar1(self, event):
os.system('xcsoar.exe')
root.destroy()
def startx1(self, event):
root.destroy()
root = Tk()
b = MainWindow(root)
root.mainloop()
任何想法?
答案 0 :(得分:0)
请阅读MCVEs。该建议不仅适用于发布,还适用于开发和调试。接下来是使用基本键绑定来删除代码的版本。
import tkinter as tk
root = tk.Tk()
def up(event): print('up')
def dn(event): print('dn')
root.bind('<Up>', up)
root.bind('<Key-Down>', dn)
root.mainloop()
当从3.5.1,Win10上的IDLE编辑器运行时,这是有效的。按向上或向下键可打印到IDLE shell。你的电脑怎么样?你的RPi怎么样?
答案 1 :(得分:0)
我遇到了同样的问题,但是我不知道这是否对您有用,但是请尝试在按键绑定之前添加力聚焦
pip install qiskit
我添加#####只是为了标记它在哪里