A.T.Hofkamp wrote:
Hello,
Gary Jaffe wrote:
I wrote a pygtk application that displays ascii letters and spaces
arranged as 70 columns by 20 rows. Each letter and its background
color represents a potential appointment spot in a doctor's office.
The user can click on any of the letters to either make or view an
appointment. This is working, but is too slow. It takes about a
second to redraw the letters, even when using pyrex or psyco.
Do you redraw everything each time, or do you use rectangles to mark
which parts should be redrawn?
When an appointment is made, I just modify that one letter. There is no
speed problem there. But when the week or the doctor is changed, I need
to redraw the entire 70 * 20 array. That's when it takes about a second
to redraw.
I implemented this by using an EventBox() for each letter (to catch
the clicks) and then added a label to each EventBox() to display the
letter with its background color. I'm considering using a TextView()
instead to display the letters and managing the letters with pango.
Is this likely to be faster, or is there some other way of
implementing this that would be faster?
Would a single large bitmap with the letters be faster?
(a simple test would be to create an arbitrary bitmap with the right
size, and see how fast that is blitted to the screen).
Another option may be to have a set of bitmaps (one for each letter for
example), and a canvas on which you blit the right bitmap at the right
place.
This may have no effect, depending on what pango does with caching.
These are good suggestions, thanks. I'll try a few of them and probably
settle on the first one that has resonable speed. :)
Albert
_______________________________________________
pygtk mailing list [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/