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 05:44 | Nová verze Ladislav Hagara | Komentářů: 2
    dnes 05:22 | Bezpečnostní upozornění

    Byly publikovány informace o kritické zranitelnosti v knihovně pro Rust async-tar a jejích forcích tokio-tar, krata-tokio-tar a astral-tokio-tar. Jedná se o zranitelnost CVE-2025-62518 s CVSS 8.1. Nálezci je pojmenovali TARmageddon.

    Ladislav Hagara | Komentářů: 0
    včera 23:15 | Nová verze

    AlmaLinux přinese s verzí 10.1 podporu btrfs. XFS bude stále jako výchozí filesystém, ale instalátor nabídne i btrfs. Více informací naleznete v oficiálním oznámení.

    Max | Komentářů: 0
    včera 22:33 | IT novinky

    Společnost OpenAI představila svůj vlastní webový prohlížeč ChatGPT Atlas. Zatím je k dispozici pouze na macOS.

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

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.5 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.

    Ladislav Hagara | Komentářů: 2
    včera 13:55 | IT novinky

    Rodina jednodeskových počítačů Orange Pi se rozrostla (𝕏) o Orange Pi 6 Plus.

    Ladislav Hagara | Komentářů: 4
    včera 13:33 | IT novinky

    Na Humble Bundle běží akce Humble Tech Book Bundle: All Things Raspberry Pi by Raspberry Pi Press. Se slevou lze koupit elektronické knihy od nakladatelství Raspberry Pi Press a podpořit Raspberry Pi Press, Raspberry Pi Foundation North America nebo Humble.

    Ladislav Hagara | Komentářů: 0
    včera 11:44 | Humor

    Přidaný režim autonomního řízení vozidel Tesla Mad Max je dostupný pro vybrané zákazníky v programu EAP (Early Access Program). Nový režim je na silnici agresivnější, častěji mění pruhy a ne vždy dodržuje rychlostní limity. Agentura JPP spekuluje, že v Česku by se mohl nový režim namísto Mad Max jmenovat Mad Turek...

    karkar | Komentářů: 21
    včera 04:00 | Nová verze

    Byla vydána nová verze 9.18 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Nově také pro NanoPi R3S, R3S LTS, R76S a M5. Přehled novinek v poznámkách k vydání.

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

    bat, tj. vylepšený cat se zvýrazňováním syntaxe a integrací s gitem, byl vydán ve verzi 0.26.0.

    Ladislav Hagara | Komentářů: 1
    Jaké řešení používáte k vývoji / práci?
     (37%)
     (48%)
     (20%)
     (20%)
     (22%)
     (18%)
     (20%)
     (18%)
     (18%)
    Celkem 254 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: pyQT4 a QThread

    1.7.2007 10:50 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    pyQT4 a QThread
    Přečteno: 622×
    Používám standartní funkci Thread, která je v modulu pro Python. Můj program zobrazuje GUI s progressbarem a zároveň spouštím druhé vlákno, které provádí náročnější operaci a průběh zobrazuje v progressbaru. Fungovalo to, ovšem pouze někdy. Tak z 80% jsem dostal SIGSEGV nebo jinou chybu. Zajímavé je, že občas to proběhlo bez chyby. Našel jsem, že pro tyto účely mám použít QThread. Ovšem nechápu jejich použití. Angličtinu louskám celkem blbě. Proto se ptám, jak je mám použít? Jako nové vlákno mám zpouštět GUI, nebo fci, která ovládá GUI? Byl bych rád, kdyby sem někdo hodil kus jednoduchého kódu. Zkoušel jsem s tím laborovat, ale nikdy se mi žádnou fci nepodařilo spustit jako vlákno.

    Odpovědi

    1.7.2007 11:59 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: pyQT4 a QThread
    Program v Pythonu, co dostane SIGSEGV? Ukaž ho, to se musí hlásit.
    1.7.2007 13:15 hanzz | skóre: 19 | blog: hanzz
    Rozbalit Rozbalit vše Re: pyQT4 a QThread
    Dve tridy... Jedna je samotny thread, druhe je progressdialog
    from PyQt4 import QtCore, QtGui
    import time,sys
    # vytvoreni mutexu
    mutex=QtCore.QMutex()
    
    class thread(QtCore.QThread):
    	"""
    	Thread, ktery co sekundu posune progress dialog o jeden stupen, dokud nebude na 100
    	"""
    	def __init__(self):
    		QtCore.QThread.__init__(self,None)
    
    	def run(self):
    		"""
    		Funkce, ktera je spustena po zapnuti threadu funkci start()
    		"""
    		# automaticke lockovani threadu pri praci s promennyma mimo tento thread
    		locker = QtCore.QMutexLocker(mutex)
    		i=0 # pocitadlo sekund
    		while i!=1000:
    			# ukonceni threadu pokud v progressDialogu zmenime promennou end na true
    			if win.end==True:
    				break
    			time.sleep(0.1)
    			i+=1
    			# emitovani signalu, na ktery je progressDialog napojen
    			self.emit(QtCore.SIGNAL("inc(int)"), i)
    
    class progress(QtGui.QProgressDialog):
    	"""
    	Derivovana trida progress dialogu
    	"""
    	def __init__(self):
    		"""
    		Vytvori a spusti thread a progressDialog
    		"""
    		QtGui.QProgressDialog.__init__(self,"Test dialogu","Zrusit",0,1000)
    		self.setWindowModality(QtCore.Qt.WindowModal)
    		# signaly potrebne k ukonceni threadu pri uzavreni okna a kliknuti na tlacitko pro ukonceni dialogu
    		QtCore.QObject.connect(app,QtCore.SIGNAL("lastWindowClosed() "),self._exit)
    		QtCore.QObject.connect(self,QtCore.SIGNAL("canceled() "),self._exit)
    		# vytvoreni threadu pomoci tridy thread()
    		self.thread=thread()
    		self.end=False
    		# napojeni signalu pro zvednuti stavu progressbaru na fci progressDialogu setValue(int)
    		QtCore.QObject.connect(self.thread, QtCore.SIGNAL("inc(int)"), self.setValue,QtCore.Qt.QueuedConnection)
    		# zapnuti threadu
    		self.thread.start()
    	
    	def _exit(self):
    		"""
    		Vypnuti threadu
    		"""
    		self.end=True
    		self.thread.wait()
    		app.quit()
    
    app = QtGui.QApplication(sys.argv)
    win=progress()
    win.show()
    sys.exit(app.exec_())
    
    
    1.7.2007 16:05 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    Rozbalit Rozbalit vše Re: pyQT4 a QThread
    Díky za pomoc.
    kozzi avatar 1.7.2007 13:37 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: pyQT4 a QThread
    No já si myslím s thread funkcemi hrál jak u pythonu tak i s těmi z Qt, ale proto co potřebuješ ty by bylo možná lepší použít QTimer je to jednoduší na pochoponí a jsou stím menší potíže. Obecně řečeno vlákna jsou dobrá, ale musejí se dobře použít.
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"

    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.