Advertisement
Guest User

Untitled

a guest
Jul 2nd, 2015
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.57 KB | None | 0 0
  1. import os
  2. import sys
  3. import _tkinter
  4. import Tkinter
  5. import tkFont
  6. from Tkinter import *
  7.  
  8. class CustomButton(Button):
  9.     def __init__(self,master,*args,**kwargs):
  10.         Button.__init__(self,master,*args,**kwargs)
  11.         self.bind('<Button-3>', self.on_mouse_rightclick)
  12.         self.entry=None
  13.         self['text']='12345'
  14.         self.italic_font = tkFont.Font(self, self.cget("font"))
  15.         self.italic_font.configure(slant="italic")
  16.         self.default_font = self.cget('font')
  17.  
  18.     def on_mouse_rightclick(self, event):
  19.         print 'on_mouse_rightclick'
  20.         if self.entry!=None:
  21.             print 'Non-null entry'
  22.             return
  23.         self.prev_state = self["state"]
  24.         self.entry=Entry(self,{"width":8})
  25.         self.entry.pack(side=TOP,anchor=W)
  26.         self.entry.insert(0,self['text'])
  27.         self.entry.bind('<Return>', self.on_entry_edit)
  28.         self.entry.bind('<Escape>', self.on_escape)
  29.         self['state']=DISABLED
  30.         self.lower(self.entry)
  31.         return
  32.     def on_entry_edit(self, event):
  33.         print 'on_entry_edit'
  34.         entry_str = self.entry.get()
  35.         self['text']=entry_str
  36.         self.lift()
  37.         self['state']=self.prev_state
  38.         self.entry.destroy()
  39.         self.entry=None
  40.     def on_escape(self, event):
  41.         print 'on_escape'
  42.         if self.entry==None:
  43.             return
  44.         self.lift()
  45.         self['state']=self.prev_state
  46.         self.entry.destroy()
  47.         self.entry=None
  48.  
  49.  
  50. class Application(Frame):
  51.     def __init__(self, master=None):
  52.         self.root = Tk()
  53.         Frame.__init__(self, master)
  54.         self.button=CustomButton(self)
  55.         self.button.pack(side="top",anchor=N)
  56.         self.button2=CustomButton(self)
  57.         self.button2.pack(side="top",anchor=N)
  58.         self.pack()
  59.  
  60. app = Application()
  61. app.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement