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í
×
    včera 20:22 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2026.

    Ladislav Hagara | Komentářů: 0
    včera 18:44 | Zajímavý software

    Německý startup Aleph Alpha k příležitosti výročí sjednocení Německa zveřejnil open-weight jazykový model Kolibri, vyvíjený s ohledem na unijní pojetí autorského práva, ochranu osobních údajů GDPR a nařízení EU o umělé inteligenci, jehož 'Kodexu správné praxe' je Aleph Alpha signatářem. Výsledkem tohoto přístupu je transparentnější technologie, kterou například budou moci využívat evropské veřejné instituce, ovšem za cenu

    … více »
    AfD 💙 | Komentářů: 1
    včera 18:33 | IT novinky

    Nvidia zveřejnila návrh nové bezpečnostní platformy pro nasazování AI agentů. Jedná se o nasazení AI za použití OpenShell a Sentry, dvou oddělených bezpečnostních vrstev, v nichž může Sentry monitorovat a vyhodnocovat chování AI v OpenShellu tak, že ho v krajním případě až vypne. Mělo by to zabránit dalším únikům AI ze sandboxu.

    vencour | Komentářů: 0
    3.10. 11:33 | Komunita

    Přímý přenos (YouTube) z konference LinuxDays 2026, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.

    Ladislav Hagara | Komentářů: 2
    3.10. 02:44 | Nová verze

    Byla vydána nová verze 0.17.0 programovacího jazyka Zig (Codeberg, Wikipedie). Přispělo 206 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    2.10. 21:00 | Zajímavý projekt

    Open-source projekt OpenDLSS-NR je 'bitově přesná reimplementace' neuronové rendrovací sítě DLSS 5 od společnosti NVIDIA, jenže pro grafické API Vulkan (DLSS slouží k vylepšování klasickým způsobem vyrendrovaných snímků pomocí lokálních modelů umělé inteligence, a to v reálném čase). Projekt není nijak spojen se společností NVIDIA, je pouze pro OS Windows a natrénované váhy modelu si uživatelé musí obstarat sami. Zdrojový kód je k dispozici na GitHubu, pod licencí MIT s výjimkou pro komponenty třetích stran.

    AfD 💙 | Komentářů: 0
    2.10. 20:55 | Zajímavý software

    Společnost Cloudflare představila Clef a Clef-Flash, open-source rozhodovací modely určené pro rychlou a konzistentní klasifikaci vstupů. Na rozdíl od klasických LLM vracejí tyto modely deterministické striktně typované strukturované odpovědi s exaktními pravděpodobnostmi, tedy odpovědi ve stylu přelomového modelu Jev.

    … více »
    AfD 💙 | Komentářů: 1
    2.10. 04:44 | Nová verze

    Byla vydána beta verze Ubuntu 26.10 s kódovým názvem Stonking Stingray. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.10 mělo vyjít 15. října 2026.

    Ladislav Hagara | Komentářů: 0
    1.10. 22:22 | Nová verze

    Byla vydána verze 1.99.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 5
    1.10. 18:11 | Komunita

    Od 13. do 15. října proběhne v Praze OpenSSL Conference 2026. Na YouTube lze zhlédnout videozáznamy přednášek z loňského roku.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2796 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: PyQT4 a vlákna

    19.1.2008 14:57 Jirka
    PyQT4 a vlákna
    Přečteno: 647×
    Dobrý den,

    dělám programy, které spolu komunikují přes sockety (klient/server) a klienta jsem se rozhodnul udělat i v grafice. Tak jsem zkusil PyQT4, ale zasekl jsem se na jednom problému:

    V programu musí pořád běžet jedno vlákno (nekonečný cyklus), které přijímá zprávy od serveru. A tyto zprávy pak potřebuji zobrazit v grafice, jenže tam mi to vždycky vyhodí error. Dám sem příklad, který jsem hodně ořezal:
    from PyQt4 import QtCore, QtGui
    import sys
    import threading
    import time
        
    class oknoHlavni:
    
        def __init__(self):
    
            self.klient = klient(self)
    
            ##########################
            ## Hlavni okno programu ##
            ##########################
            
            self.app = QtGui.QApplication(sys.argv)
            self.mainWindow = QtGui.QMainWindow()
            self.mainWindow.setWindowTitle("Moje okno")
            self.mainWidget=QtGui.QWidget(self.mainWindow)
            self.mainWindow.setCentralWidget(self.mainWidget)
            self.layout=QtGui.QGridLayout(self.mainWidget)
    
            #################
            ## WIDGET CHAT ##
            #################
    
            self.widgetChat=QtGui.QWidget(self.mainWidget)
            self.layout.addWidget(self.widgetChat,1,0,1,1)
            
            self.layoutChat=QtGui.QGridLayout(self.widgetChat)
    
            # okno na zpravy - sklo
            self.chatSklo=QtGui.QTextEdit(self.widgetChat)
            self.chatSklo.setReadOnly(True)
            
            # prida objekty do layoutu
            self.layoutChat.addWidget(self.chatSklo,1,0,1,3)
    
            self.obnoveniOkna()
            self.klient.start()
            
    
        def obnoveniOkna(self):
            self.mainWindow.show()       
            
    
        def skloZapisText(self, text):
            print "skloZapisText: ", text
            self.chatSklo.setText(text)   
    
    class klient:
    
        def __init__(self, rodic):
            self.grafika = rodic
        
        def start(self):
            v1 = threading.Thread(target = self.vlakno)
            v1.start()
        
        def vlakno(self):
            print "Vlakno"    
            for i in range(50):
                time.sleep(0.5)
                self.grafika.skloZapisText("Vlakno..."+str(i))
        
        
    grafika = oknoHlavni()
    
    sys.exit(grafika.app.exec_())
    
    Program vypíše:
    Vlakno

    skloZapisText: Vlakno...0

    QObject: Cannot create children for a parent that is in a different thread. Atd...
    Předem díky za rady :-)

    Odpovědi

    okbob avatar 19.1.2008 20:30 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: PyQT4 a vlákna
    Zdar, neco podobneho jsem resil na .NETu. Jde o to, ze s GUI muze primo komunikovat pouze jeden thread. Na .NETu se to resi skrz jakousi proxy.
    Luboš Doležel (Doli) avatar 20.1.2008 02:06 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: PyQT4 a vlákna
    Dělat to takhle je fuj, od čeho jsou sloty/signály.
    22.1.2008 21:19 Jirka
    Rozbalit Rozbalit vše Re: PyQT4 a vlákna
    A mohl bys mi, prosím, ukázat, jak to mám udělal přes ty sloty a signály? Signály a sloty umím použít třeba jen pro stisknutí tlačítka apod.

    Zkusil jsem toto:

    A do druhé třídy (klient) bych dal toto:

    self.grafika(QtCore.SIGNAL("progress(int)"), nejake_cislo)

    Do první třídy (oknoHlavni) bych dal toto:

    self.app.connect(?co sem?, QtCore.SIGNAL("progress(int)"), self.skloZapisText)

    Jenže co mám dát jako první parametr?
    mess avatar 22.1.2008 21:51 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
    Rozbalit Rozbalit vše Re: PyQT4 a vlákna
    Kdyby by ta třída klient dědila od QtCore.QObject, tak by se dal vyvolat vlastní signál přes self.emit. Více tady. A tady máš referenční příručku ke všem PyQt4 třídám.
    Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
    Luboš Doležel (Doli) avatar 22.1.2008 22:00 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: PyQT4 a vlákna
    class klient : public QThread
    {
    Q_OBJECT
    signals:
        void addText(QString text);
        // atd.
    };
    
    class oknoHlavni : public Q...
    {
    Q_OBJECT
    slots:
        void textReceived(QString text);
    };
    
    // a pak někde
    connect(m_pClient, SIGNAL(addText(QString)), this, SLOT(textReceived(QString)));
    
    // posílání:
    emit addText(nejakyText); // šlo mi snad i bez emit (?)
    
    (Sorry, ale Python fakt ne-e.)
    grubber avatar 22.1.2008 21:37 grubber | skóre: 6 | blog: grubber | Břeclav / Brno
    Rozbalit Rozbalit vše Re: PyQT4 a vlákna
    Kdyz uz to pises s Qt, nebylo by lepsi pro vlakna pouzit QtCore.QThread misto threading.Thread? (strilim od boku, Qt znam jen z C++)
    kozzi avatar 22.1.2008 22:01 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: PyQT4 a vlákna
    Bylo ale tomu nerikej :-D
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"

    Založit nové vlákno • Nahoru

    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.