Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import sys
- import _tkinter
- import Tkinter
- import tkFont
- from Tkinter import *
- class CustomButton(Button):
- def __init__(self,master,*args,**kwargs):
- Button.__init__(self,master,*args,**kwargs)
- self.bind('<Button-3>', self.on_mouse_rightclick)
- self.entry=None
- self['text']='12345'
- self.italic_font = tkFont.Font(self, self.cget("font"))
- self.italic_font.configure(slant="italic")
- self.default_font = self.cget('font')
- def on_mouse_rightclick(self, event):
- print 'on_mouse_rightclick'
- if self.entry!=None:
- print 'Non-null entry'
- return
- self.prev_state = self["state"]
- self.entry=Entry(self,{"width":8})
- self.entry.pack(side=TOP,anchor=W)
- self.entry.insert(0,self['text'])
- self.entry.bind('<Return>', self.on_entry_edit)
- self.entry.bind('<Escape>', self.on_escape)
- self['state']=DISABLED
- self.lower(self.entry)
- return
- def on_entry_edit(self, event):
- print 'on_entry_edit'
- entry_str = self.entry.get()
- self['text']=entry_str
- self.lift()
- self['state']=self.prev_state
- self.entry.destroy()
- self.entry=None
- def on_escape(self, event):
- print 'on_escape'
- if self.entry==None:
- return
- self.lift()
- self['state']=self.prev_state
- self.entry.destroy()
- self.entry=None
- class Application(Frame):
- def __init__(self, master=None):
- self.root = Tk()
- Frame.__init__(self, master)
- self.button=CustomButton(self)
- self.button.pack(side="top",anchor=N)
- self.button2=CustomButton(self)
- self.button2.pack(side="top",anchor=N)
- self.pack()
- app = Application()
- app.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement