Bindungsschlüssel in Mac OS X - TKinter
Posted: 12 Apr 2025, 23:09
Ich habe einen Code, der in einem Ubuntu -System perfekt funktioniert. Dies ist nur ein minimaler Code, der darauf basiert: < /p>
zu verwenden, nur die normale linke Steuerung . Das macht keinen Sinn, aber ich kann das Problem nicht finden.
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