Key Binding Problem
Wildman
best_lay at yahoo.com
Tue Mar 22 22:46:14 EDT 2016
Platform: Linux
Python: v.2.7.9
Tkinter: v.8.6.2
My program has some buttons for file operations, load_image,
save_image, and quit. I would like to bind a key that will
execute the procedures for each of the buttons. The binding
for the quit button was easy...
root.bind("<q>", quit)
root.bind("<Q>", quit)
That works but it not executing a quit button procedure.
It is merely executing an internal command. My problem is
calling an actual button procedure. Over the last several
hours I have tried many different syntax arrangements and
I keep getting "object not defined" errors. I also tried
placing the bind statements into other places in the code.
I have run out of ideas.
Below is a basic skeleton of my code. Any help appreciated.
#!/usr/bin/env python
try:
import Tkinter as tk
from Tkinter import Tk
except ImportError:
import tkinter as tk
from tkinter import Tk
import tkFileDialog, tkMessageBox
import Image, ImageTk
import base64, io, os, subprocess
class cv():
# global variables
class Window(tk.Frame):
def __init__(self, master = None):
tk.Frame.__init__(self,master)
self.master = master
self.init_window()
def init_window(self):
self.master.title("My Program")
self.pack(fill=tk.BOTH, expand=1)
self.quitButton = tk.Button(self,
text="Quit",
underline=0,
width=10,
command=self.quit)
self.quitButton.place(x=224, y=422)
self.loadButton = tk.Button(self,
text="Load Image",
underline=0,
width = 10,
command=self.load_image)
self.loadButton.place(x=138, y=46)
# create the rest of the widgets
def load_image(self):
# load image file
def save_image(self):
# save the image
def other procedure definitions
root = Tk()
root.bind("<q>", quit) # these two work
root.bind("<Q>", quit)
root.bind("<l>", load_image) # these do not work
root.bind("<L>", load_image) # object not defined errors
root.bind("<s>", save_image)
root.bind("<S>", save_image)
root.minsize(width=554, height=462)
root.maxsize(width=554, height=462)
app = Window(root)
root.mainloop()
My question is how do I coax bind into executing the
button procedures? Or is there a way to generate the
button click event from the binding?
--
<Wildman> GNU/Linux user #557453
"Be at war with your vices, at peace with your neighbors,
and let every new year find you a better man."
-Benjamin Franklin
More information about the Python-list
mailing list