Why is Tkinter for Windows NT much faster?
yanivk at my-deja.com
yanivk at my-deja.com
Wed Aug 23 07:02:11 EDT 2000
Hi Richard! First, I really appreciate your help. I added the code to run and
any comments are welcome. I tried to remove all unnecessary line code to make
it as easy for you as possible. Best of all, Yaniv Kaplan.
from Tkinter import *
from ScrolledText import ScrolledText
class form(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.expand_list = []
self.text = ScrolledText(self)
self.text.pack(fill=BOTH, expand=1)
self.pack(fill=BOTH, expand=1)
def setformulas(self, personss): text = self.text pos = 1
for first, last, exp in persons: start = text.index(CURRENT)
text.insert(END, 'Person number %d. status: ' % (pos,), 't')
text.insert(END, 'Unknown', ('st%d' % (pos,), 'st')) if not (pos%2): #Add
some buttons to simulate real behaviour text.insert(END, ' '*30)
text.window_create(END, window = Button(text, text='Show house'))
text.insert(END, '\n') else: text.insert(END,
'\n') text.insert(END, 'First name: ', 'en') text.insert(END,
first+'\n') text.insert(END, 'Last name: ', 'su')
text.insert(END, last+'\n') l = Label(text, text='+', fg='blue') #chage
'+' to an arrow bitmap text.window_create(END, window=l) exd =
'ex%d' % (pos,) text.insert(END, 'EXPAND:', (exd, 'ex'))
text.insert(END, '\n', 'exs%d' % (pos,)) text.insert(END, '\n',
'exe%d' % (pos,)) text.tag_bind(exd, '<Button-1>', lambda event,
self=self, text=text, l=l, n=pos: self.showexpand(n, text, l))
l.bind('<Button-1>', lambda event, self=self, text=text, l=l, n=pos:
self.showexpand(n, text, l)) self.expand_list.append((exp, NO))
pos = pos+1 pass text.tag_bind('ex', '<Enter>', lambda event, text=text:
text.config(cursor='hand2')) text.tag_bind('ex', '<Leave>', lambda event,
text=text: text.config (cursor='right_ptr')) self.bind_class("Label",
'<Enter>', lambda event, text=text: text.config (cursor='hand2'))
self.bind_class("Label", '<Leave>', lambda event, text=text: text.config
(cursor='right_ptr')) text.tag_config('st', foreground='red')
text.tag_config('ex', foreground='blue') text.tag_config('t',
foreground='red') text.tag_config('su', foreground='blue')
text.tag_config('en', foreground='blue')
def showexpand(self, person, text, l):
#-------------------------------------------
exp, opened = self.expand_list[person-1]
pos = text.index('exs%d.last' % (person,))
if not opened:
text.insert(pos, exp+'\n')
l.config(text='-')
else:
text.delete(pos,'exe%d.first' % (person,))
l.config(text='+')
pass
self.expand_list[person-1] = (exp, not opened)
if __name__=='__main__': f = form() # create some persons to add to list
persons = [] for i in range(200): persons.append( ('first name for person
number '+`i+1`+'.', 'Last name for person '+`i+1`+'.', 'expand information
for person '+`i+1`+'.\n This information is viewed after clicking the EXPAND
text.') ) f.setformulas(persons) f.mainloop()
Sent via Deja.com http://www.deja.com/
Before you buy.
More information about the Python-list
mailing list