iam*_*sla 6 python tkinter python-imaging-library python-2.7
编程新手,特别是python和tKinter.如何创建将键"s"绑定到按钮或功能的方法sharpen?任何帮助都是极好的.
from Tkinter import *
from PIL import Image, ImageTk, ImageFilter, ImageEnhance
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
master.wm_title("Image examples")
self.pack()
self.createWidgets()
def createWidgets(self):
self.img = Image.open("lineage.jpg")
self.photo1 = ImageTk.PhotoImage(self.img.convert("RGB"))
self.label1 = Label(self, image=self.photo1)
self.label1.grid(row=0, column=0, padx=5, pady=5, rowspan=10)
self.photo2 = ImageTk.PhotoImage(self.img.convert("RGB"))
self.label2 = Label(self, image=self.photo2)
self.label2.grid(row=0, column=1, padx=5, pady=5, rowspan=10)
button5 = Button(self, text="Sharpen", command=self.sharpen)
button5.grid(row=4, column= 2, sticky = N)
def sharpen(self):
img2 = self.img.filter(ImageFilter.SHARPEN)
self.photo2 = ImageTk.PhotoImage(img2)
self.label2 = Label(self, image=self.photo2)
self.label2.grid(row=0, column=1, padx=5, pady=5, rowspan=10)
Run Code Online (Sandbox Code Playgroud)
unu*_*tbu 15
您需要进行两项更改:
加
master.bind('s', self.sharpen)
Run Code Online (Sandbox Code Playgroud)
到__init__.(绑定到框架,self似乎不起作用.)
当s按下时,self.sharpen(event)会被调用.由于Tkinter将发送一个Tkinter.Event对象,我们还必须将呼叫签名更改为
def sharpen(self, event=None):
Run Code Online (Sandbox Code Playgroud)
因此,当按下按钮时,event将被设置为默认值None,但是当s按下该键时,event
将被分配给该Tkinter.Event对象.
| 归档时间: |
|
| 查看次数: |
18912 次 |
| 最近记录: |