Bindungsschlüssel in Mac OS X - TKinterPython

Python-Programme
Anonymous
 Bindungsschlüssel in Mac OS X - TKinter

Post by Anonymous »

Ich habe einen Code, der in einem Ubuntu -System perfekt funktioniert. Dies ist nur ein minimaler Code, der darauf basiert: < /p>

Code: Select all

import tkinter as Tk
import tkFileDialog
import ttk

class AppGUI(Tk.Frame):

def __init__(self, parent):
self.ctrl = False
self.parent = parent
self.centerWindow()
self.initGUI()
self.plot()

def initGUI(self):
# Notebooks
self.notebook  = ttk.Notebook(self.parent)
self.frame_one = Tk.Frame(self.notebook)   # first page
self.frame_two = Tk.Frame(self.notebook)   # second page
self.notebook.add(self.frame_one, text='Notebook 1')
self.notebook.add(self.frame_two, text='Notebook 2')
self.notebook.pack(side = Tk.TOP, fill="both", expand=True)

# Realization frame
self.out_frame = Tk.Frame(self.parent, bd=1, relief=Tk.SUNKEN)
self.out_frame.pack(side=Tk.TOP, fill="both", expand=True)

# Key events
self.key()

def centerWindow(self):
w = 800
h = 800

sw = self.parent.winfo_screenwidth()
sh = self.parent.winfo_screenheight()

x = (sw - w)/2
y = (sh - h)/2
self.parent.geometry('%dx%d+%d+%d' % (w, h, x, y))

def key(self):
# Key events
def press(event):
self.ctrl = True
def release(event):
self.ctrl = False

self.parent.bind('', press)
self.parent.bind('', release)

def plot1(self):
f = plt.figure(figsize=(1, 1), dpi=300)
c_plot1 = FigureCanvasTkAgg(f, master=self.frame_one)
c_plot1.show()
c_plot1.pack(side=Tk.LEFT, fill="both", expand=True)

def onClickPlot1(event):
if event.inaxes is not None:
if self.ctrl:
print "Control key pressed"
# Do my stuff

c_plot1.mpl_connect('button_press_event', onClickPlot1)

def plot2(self):
# Same stuff for plot 2

def plot(self):
self.plot1()
self.plot2()

def main():
root = Tk.Tk()
app = AppGUI(root)
root.mainloop()

if __name__ == '__main__':
main()
< /code>

Wenn ich in einer Ubuntu -Maschine dünn ausgeführt habe, kann ich sehen, dass die Taste, die ich in der Regel < /code> bin (linke oder rechte Steuerung), korrekt gebunden ist, wie ich den Druck und das erwartete visuelle Ergebnis sehe. Wenn ich den gleichen Code in einem Mac ausführe, kann ich die Druckausgabe hingegen nicht sehen, und das erwartete Ergebnis tritt natürlich nicht auf. Ich versuche nicht, den MAC -Befehl 
zu verwenden, nur die normale linke Steuerung . Das macht keinen Sinn, aber ich kann das Problem nicht finden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post