wxPython - Abbruchbedingung für den Thread

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

wxPython - Abbruchbedingung für den Thread

Beitragvon 2bock » Mittwoch 22. Oktober 2003, 13:41

Hallo zusammen!

Ich führe einen Requwest aus, der unregelmäßig lage dauert. Während diesem Request möchte ich einen animieten Dialog darstellen. Ds habe ich auch schon gemacht. Dieseer Dialog läuft in einem eigenen Thread. Jetzt möchte ich aber, das der Dialog sich nach "eintreffen" der Requestdaten beendet. Wie kbekomme ich das hin?

Hier ist der Code für den animierten Dialog.

Code: Alles auswählen

class PauseDlg(wxDialog):
    def __init__(self, parent, ID, title, pos=wxDefaultPosition, size=wxDefaultSize,style=wxDEFAULT_DIALOG_STYLE):
        wxDialog.__init__(self, parent, -1, 'Bitte warten.......',size=(350, 150), style = wxDEFAULT_DIALOG_STYLE)
        self.count = 0
        self.x=1
        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,status))
       
        b1 = wxButton(self, -1, 'Abbrechen', wxPoint(140, 70))
        b1.SetDefault()
       
        EVT_BUTTON(self, b1.GetId(), self.OnExit) # schliesst das Fenster
       
    def waitPicture(self,maxCountstatus):
        """ Wandert ein Gif Bild f�Bild durch | waitPicture(self, event) """
        print 'thread' 
        while 1:
            #~ self.x+=1
            #~ if self.x == 50:
                #~ self.OnExit('')
                #~ break
            #~ print self.x
            if status == 1:
                self.OnExit('')
                break
            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)
   
    def OnExit(self, event):
               self.Close(true)


Aufruf der Klasse:

Code: Alles auswählen

 sDlg = PauseDlg(None, -1, 'Bitte warten.......', size=wxSize(350, 200), style = wxDEFAULT_DIALOG_STYLE)



Die Codezeilen, in denen ich den Request starte usw.

Code: Alles auswählen

query = urllib.urlencode([(nodeName, val)])
                httpConnection = httplib.HTTPConnection(httpServer)
                httpConnection.request(httpMethod, httpPath+'?'+query)
                res = httpConnection.getresponse()



ICh hoffe ihr könnt mir weiterhelfen. :roll:

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder