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 13:44 | Komunita

    Bylo spuštěno hlasování o přednáškách a workshopech pro letošní Installfest, jenž proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13.

    Ladislav Hagara | Komentářů: 2
    dnes 04:33 | Nová verze

    Byla vydána (Mastodon, 𝕏) třetí RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | IT novinky

    Apple představil iPhone 17e a iPad Air s čipem M4.

    Ladislav Hagara | Komentářů: 12
    včera 21:11 | Zajímavý software

    Byla vydána verze 1.0 editoru kódů Gram. Jedná se o fork editoru Zed bez telemetrie a umělé inteligence.

    Ladislav Hagara | Komentářů: 0
    včera 20:33 | IT novinky

    Byla oznámena spolupráce GrapheneOS s Motorolou. Podrobnosti v tiskové zprávě. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.

    Ladislav Hagara | Komentářů: 1
    včera 02:22 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.2.1. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    včera 02:11 | Komunita

    Volí se dvě místa v Radě openSUSE. Seznamte se se čtyřmi kandidáty. Členové projektu openSUSE mohou hlasovat od 1. do 8. března. Výsledky budou oznámeny 9. března.

    lkocman | Komentářů: 4
    1.3. 19:22 | IT novinky

    Společnost OpenAI uzavřela dohodu s americkým ministerstvem obrany o poskytování technologií umělé inteligence (AI) pro utajované sítě americké armády. Firma to oznámila několik hodin poté, co prezident Donald Trump nařídil vládě, aby přestala využívat služby společnosti Anthropic.

    Ladislav Hagara | Komentářů: 14
    1.3. 13:33 | IT novinky

    Technologická společnost Anthropic v noci na dnešek oznámila, že se obrátí na soud kvůli rozhodnutí ministerstva obrany označit ji za bezpečnostní riziko dodavatelského řetězce poté, co nevyhověla jeho požadavkům týkajícím se používání umělé inteligence (AI). Prezident Donald Trump krátce před tím uvedl, že nařídil federálním úřadům postupně ukončit využívání jejích AI technologií. Spor mezi firmou vyvíjející chatbot Claude a

    … více »
    Ladislav Hagara | Komentářů: 17
    28.2. 15:44 | Upozornění

    Zemřel Rob Grant, spolutvůrce kultovního sci-fi seriálu Červený trpaslík.

    Ladislav Hagara | Komentářů: 8
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (7%)
     (0%)
     (12%)
     (27%)
     (2%)
     (5%)
     (2%)
     (13%)
     (26%)
    Celkem 1000 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    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: 644×
    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.