Python-Qt: Problem mit Schleife

Diskutiere Python-Qt: Problem mit Schleife im Ruby, php, Perl, Python ... Forum im Bereich Programmieren unter Linux/Unix; moin UB'ler hab en kleines Problem mit einer Schleife in Python. def netchecker(self): global iplist, item, ipicon #Hier soll die...

  1. #1 Always-Godlike, 11.08.2008
    Zuletzt bearbeitet: 12.08.2008
    Always-Godlike

    Always-Godlike Das Freak

    Dabei seit:
    31.12.2006
    Beiträge:
    939
    Zustimmungen:
    0
    Ort:
    Saarland
    moin UB'ler

    hab en kleines Problem mit einer Schleife in Python.
    Code:
    def netchecker(self):
    		global iplist, item, ipicon
    
    		#Hier soll die Nachricht in der Statusbar geändert werden, noch vor der Schleife
    		#Allerdings wird sie erst nach der Schleife geändert
    		self.statuslabel.setText(QtGui.QApplication.translate("MainWindow", "Pings werden durchgeführt...", None, QtGui.QApplication.UnicodeUTF8))
    
    		for i in range(len(iplist)):
    			ipicon[i].addPixmap(QtGui.QPixmap("link_working.gif"),QtGui.QIcon.Normal,QtGui.QIcon.On)
    			item[i].setIcon(ipicon[i])
    			ret = os.popen("./pinger.sh '%s'" % iplist[i]).read().strip()
    			if ret == "1":
    				print "Erfolg bei "+iplist[i]
    				ipicon[i].addPixmap(QtGui.QPixmap("link_online.gif"),QtGui.QIcon.Normal,QtGui.QIcon.On)
    				item[i].setIcon(ipicon[i])
    			else:
    				print "Misserfolg bei "+iplist[i]
    				ipicon[i].addPixmap(QtGui.QPixmap("link_offline.gif"),QtGui.QIcon.Normal,QtGui.QIcon.On)
    				item[i].setIcon(ipicon[i])
    
    Diese Schleife soll verschiedene Hosts anpingen und bei Erfolg ein grünes Symbol in die Liste setzen, bei Misserfolg entsprechend ein rotes. Während diese Schleife durch läuft, soll in der StatusBar ein Label gezeigt werden "Pings werden durchgeführt".
    Dieser Code funktioniert jetzt zwar, aber leider werden die ganzen Änderungen (neue Icons und StatusBar-Nachricht) erst vollzogen wenn die Schleife komplett beendet ist.

    Frage: Warum macht er die Änderung nicht sofort und wie bring ich ihn dazu die Änderungen sofort anzuzeigen?
     

    Anhänge:

  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Always-Godlike, 12.08.2008
    Always-Godlike

    Always-Godlike Das Freak

    Dabei seit:
    31.12.2006
    Beiträge:
    939
    Zustimmungen:
    0
    Ort:
    Saarland
    4 Tage später und ewiges googeln hat mir die Erleuchtung erbracht und ich hab mein Problem gelöst.
    self.listWidget.repaint()
    Und schon werden die Icons geändert, entsprechend auch bei der Statusbar.

    Wonach soll bei so einem Problem auch suchen?
     
Thema: Python-Qt: Problem mit Schleife
Besucher kamen mit folgenden Suchen
  1. PythonQt PlainTextEdit befehle

    ,
  2. qt python schleifen

Die Seite wird geladen...

Python-Qt: Problem mit Schleife - Ähnliche Themen

  1. Problem bei der installation einer Sun Netzwerkkarte

    Problem bei der installation einer Sun Netzwerkkarte: Guten Morgen zusammen, beim installieren einer zusätzlichen Netzwerkkarte habe ich ein Problem. Die Karte wird nicht automatisch installiert. Es...
  2. Problem bei der Vergabe von Sciherheitsinformationen auf eine Freiagbe

    Problem bei der Vergabe von Sciherheitsinformationen auf eine Freiagbe: Liebe Community, zurzeit arbeite ich an eine Active Directory Domäne die mittels Samba läuft. Dazu habe ich einen AD DC auf Debian 8.7 mit Samba...
  3. Netzwerkproblem ? , wo ud wie suchen

    Netzwerkproblem ? , wo ud wie suchen: Hallo Folgende Problem: Testserver ist i686 Debian-unstable , auf dem läuft primär der apt-proxy apt-cahcer ng. Zugriff im Moment nur per ssh....
  4. Verständnisproblem Samba / LDAP

    Verständnisproblem Samba / LDAP: Hallo zusammen! Ich habe unter Ubuntu 16.04 einen LDAP und Samba Server aufgesetzt. Diese scheinen auch ordnungsgemäß zu funktionieren, sodaß ich...
  5. nginx+php-fpm problem

    nginx+php-fpm problem: Moin, ich hab hier gerade ein Problem und keine Idee mehr woran es liegt. Ich muss wie schon in der Überschrift erwähnt nginx dazu bringen php...