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/

Reply via email to