wx PYthon - animiertes Gif im Thread laufen lassen

Plattformunabhängige GUIs mit wxWidgets.
Benutzeravatar
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

wx PYthon - animiertes Gif im Thread laufen lassen

Beitragvon 2bock » Mittwoch 8. Oktober 2003, 08:18

Hi und hallo alles zusammen,

Ich führe in meiner Applikation einen http Request Durch und möchte solange bis der Request läuft ein animiertes Gif anzeigen lassen. So wie das animiertes Gif beim Kopieren unter Windows.

Das muß aber meiner Meinung nach in einem eigenen Thread laufen. Nun habe ich mich noch nicht intensiv mit Thread beschäftigt. Hab zwar schon mal was versucht, das klappte aber nicht. Betimmt hat schon mal jemand so etwas gemacht und kann mir ein Paar Tips geben. Also wie gesagt, den animierten Dialog hab ich schon, nur das in einen Thread zu verpacken klappt noch nicht.

Merci schon mal im Voraus

2bock :lol:
Benutzeravatar
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

Lösung

Beitragvon 2bock » Freitag 17. Oktober 2003, 08:06

Für alle die es interessiert hier die "so glaube ich " Lösung.

Hier ein Codeausschnitt:

Code: Alles auswählen

self.count = 0
        maxCount = 11# Maximale Bilderanzahl im Gif
        gif = wxImage('.\images\wait.gif', wxBITMAP_TYPE_GIF,self.count).ConvertToBitmap()
        self.myBitmap = wxStaticBitmap(self, -1, gif, wxPoint(20, 20), wxSize(70,70))
        thread.start_new_thread(self.waitPicture,(maxCount,))
       
        b1 = wxButton(self, -1, 'Abbrechen', wxPoint(140, 70))
        b1.SetDefault()
       
        EVT_BUTTON(self, b1.GetId(), self.OnExit) # schliesst das Fenster
       
    def waitPicture(self,maxCount):
        """ Wandert ein Gif Bild für Bild durch | waitPicture(self, event) """
        while 1:
            self.count += 1
            if self.count > maxCount:
                self.count -= maxCount
            gif =  wxImage('.\images\wait.gif', wxBITMAP_TYPE_GIF,self.count).ConvertToBitmap()
            self.myBitmap.SetBitmap(gif)
            wxUsleep(100)


Also wie man sieht reicht ein thread.start_new_thread(self.waitPicture,(maxCount,)) völlig aus.

Bis dann 8)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder