abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:00 | Pozvánky

    V pátek 28. srpna se v Praze uskuteční již osmý Mobile Linux Hackday. Jako obvykle se potkáme v pražské pobočce SUSE v Karlíně na Křižíkově, takže kromě mobilního Linuxu je to tentokrát i příležitost přijít se podívat na nově zrekonstruované kanceláře. Začínáme v 10:00, ale dorazit můžete samozřejmě kdykoliv v průběhu dne. Setkáním vás provede David Heidelberg, vývojář GPU ovladačů v Mesa 3D a jeden z hlavních lidí české komunity kolem … více »

    lkocman | Komentářů: 0
    dnes 14:11 | IT novinky

    Představen byl Raspberry Pi Compute Module 5 Programming Jig. Jedná se o zařízení umožňující připravit Compute Module 5 do plně funkčního stavu bez nutnosti použití dalších vstupně / výstupních desek. Podporuje automatizaci pomocí nástroje rpi-sb-provisioner. Podrobnosti v dokumentaci.

    Ladislav Hagara | Komentářů: 1
    dnes 05:55 | IT novinky

    Hackeři ve Francii ukradli data více než půl milionu daňových poplatníků. Je to jeden z největších hackerských útoků v dějinách země. O útoku z konce června informovala až teď daňová správa. Teprve od pondělí dotčeným občanům zasílá e-maily s instrukcemi, jak postupovat dál. Hackeři se sice nedostanou k penězům dotyčných, hrozí ale věrohodné podvody. Hackeři získali třeba celá jména, údaje o rodinných příslušnících nebo také údaje o

    … více »
    Ladislav Hagara | Komentářů: 19
    dnes 04:44 | IT novinky

    Společnost Framework představila nový Framework Laptop 12 s Intel Core Series 3, Thunderbolt 4, Wi-Fi 7, volitelnou čtečkou otisků prstů a podsvícenou klávesnicí s open-source firmwarem ZMK. Objednat lze s předinstalovanou Fedorou 44 KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Nová verze

    Byl vydán Mozilla Firefox 154.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 154 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 14:33 | Nová verze

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 168 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 11:55 | Nová verze

    Open-source citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 10. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 00:44 | Nová verze

    Interaktivní editor binárních dat GNU poke byl vydán ve verzi 5.0 (seznam změn).

    |🇵🇸 | Komentářů: 13
    17.8. 18:55 | Nová verze

    Byla vydána verze 0.85 telnet a ssh klienta PuTTY (Wikipedie). Řešeno je 5 zranitelností.

    Ladislav Hagara | Komentářů: 0
    17.8. 13:33 | Zajímavý článek

    Byly publikovány novinky z vývoje GIMPu. Pracuje se na novém formátu souborů. Stávající binární XCF bude nahrazen "zazipovaným XML". XCF zůstane plně podporován pouze pro načítání starých souborů.

    Ladislav Hagara | Komentářů: 12
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2434 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Python + PyQt4 + vlákno..

    19.8.2010 14:05 janhaj | skóre: 3
    Python + PyQt4 + vlákno..
    Přečteno: 329×
    zdravím..

    snažím se napsat aplikaci v PyQt4. V hlavním, defaultním vlákně se vykreslí GUI a vytvoří se nový thread2, který mi přidá záznamy do QListWidgetu (které je vykresleno již). Když thread2 doběhne, potřeboval bych změnit zprávu ve stavové oblasti - statusBar. self.MainWindow.statusBar().showMessage(u'Seznam aktualizován') Když to udělám v threadu2, ukončí se program s chybou, že nemůžu přistupovat ke GUI z jiného threadu. Naopak, když dám while cyklus (jestli vlákno ještě žije) do hlavního, defaultního threadu, tak se GUI objeví, až když ten while skončí a to i přesto, že se ten cyklus nachází za self.MainWindow.show().

    Ještě doplním, nové vlákno zakládám takhle: self.thread2 = threading.Thread(target = self.test_internetu) a startuji self.thread2.start()

    Poradí někdo, jak to vyřešit? Jsem v tomhle nováček. Děkuji předem

    Řešení dotazu:


    Odpovědi

    19.8.2010 14:13 reqw5q23
    Rozbalit Rozbalit vše Re: Python + PyQt4 + vlákno..
    Nejjednoduzsi bude poslat v tom vedlejsim threadu tesne pred koncem (a po dokonceni vsech akci) signal a na ten v hlavnim threadu reagovat aktualizaci statusbaru. Cyklus (sleep, atd) bych durazne nedoporucil, protoze to brzi interaktivitu.
    19.8.2010 14:16 janhaj | skóre: 3
    Rozbalit Rozbalit vše Re: Python + PyQt4 + vlákno..
    to je logické.. ale vůbec nevím, jak bych to napsal.. uveď to prosím na nějakém příkladu.. díky
    Řešení 1× (janhaj (tazatel))
    19.8.2010 14:53 michal | skóre: 24 | blog: Blog
    Rozbalit Rozbalit vše Re: Python + PyQt4 + vlákno..
    Doporučuji na thready používat PyQt4 a ne přímo thready z Pythonu. Tady je kus kódu kde jsem to také řešil. Podle emitovaného signálu to volá funkce self.updateUi(self, outputlist), self.failed(), atd. Dokumentace http://doc.trolltech.com/4.6/qthread.html, signál finished() je volán po dokončení.
    	self.thread = MainThread(self)
    	self.changeStartButton(0)
    	self.connect(self.thread, QtCore.SIGNAL("output"), self.updateUi)
    	self.connect(self.thread, QtCore.SIGNAL("failed"), self.failed)
    	self.connect(self.thread, QtCore.SIGNAL("newValue"), self.progressBar.setValue)
    	self.connect(self.thread, QtCore.SIGNAL("finished()"), self.changeStartButton)
    
    class MainThread(QtCore.QThread):
        def __init__(self, parent):
            QtCore.QThread.__init__(self, parent)
            self.progress = IterateProgress(self,parent.progressBar)
            self.parent = parent
        def prepare(self,setting):
    	self.setting = setting
        def run(self):
    	print 'RUN'
    	try:
    	    output_list = tomography(self.setting,  self.progress)  # vlastní program !!!
    	except KeyboardInterrupt:
    	    self.emit(QtCore.SIGNAL("newValue"),0)
    	    return
    	except:
    	    self.emit(QtCore.SIGNAL("failed"))
    	    self.emit(QtCore.SIGNAL("newValue"),0)
    	    raise
    	    return
    	else:
    	    self.emit(QtCore.SIGNAL("output"),output_list)
    
    19.8.2010 17:03 janhaj | skóre: 3
    Rozbalit Rozbalit vše Re: Python + PyQt4 + vlákno..
    funguje, díky moc.. :) paráda! :)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.