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 18:22 | Komunita

    O víkendu probíhá v Bruselu konference FOSDEM 2026 (Free and Open source Software Developers’ European Meeting). Program konference je velice nabitý: 37 místností, 71 tracků, 1184 přednášejících, 1069 přednášek, prezentací a workshopů. Sledovat je lze i online. K dispozici budou jejich videozáznamy. Aktuální dění lze sledovat na sociálních sítích.

    Ladislav Hagara | Komentářů: 3
    včera 18:00 | IT novinky

    Společnost Nex Computer stojící za "notebooky bez procesorů a pamětí" NexDock představila telefon NexPhone, který může funguje jako desktop PC, stačí k němu připojit monitor, klávesnici a myš nebo NexDock. Telefon by měl být k dispozici ve třetím čtvrtletí letošního roku. Jeho cena by měla být 549 dolarů. Předobjednat jej lze s vratní zálohou 199 dolarů. V dual-bootu by měl být předinstalovaný Android s Linuxem (Debian) jako aplikací a Windows 11.

    Ladislav Hagara | Komentářů: 3
    včera 16:00 | Nová verze

    Byla vydána nová major verze 9.0 softwaru pro správu elektronických knih Calibre (Wikipedie). Přehled novinek v poznámkách k vydání. Vypíchnuta je podpora AI.

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

    Wasmer byl vydán ve verzi 7.0. Jedná se o běhové prostředí pro programy ve WebAssembly. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

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

    V reakci na nepopulární plán Microsoftu ještě více ve Windows prohloubit integraci umělé inteligence Copilot, Opera na sociální síti 𝕏 oznámila, že připravuje nativní linuxovou verzi prohlížeče Opera GX. Jedná se o internetový prohlížeč zaměřený pro hráče, přičemž obsahuje všechny základní funkce běžného prohlížeče Opera. Kromě integrace sociálních sítí prohlížeč například disponuje 'omezovačem', který umožňuje uživatelům omezit využití sítě, procesoru a paměti prohlížečem, aby se tak šetřily systémové zdroje pro jinou aktivitu.

    NUKE GAZA! 🎆 | Komentářů: 8
    včera 06:22 | Zajímavý software

    NVIDIA vydala nativního klienta své cloudové herní služby GeForce NOW pro Linux. Zatím v beta verzi.

    Ladislav Hagara | Komentářů: 6
    včera 04:33 | Zajímavý projekt

    Open Gaming Collective (OGC) si klade za cíl sdružit všechny klíčové projekty v oblasti linuxového hraní počítačových her. Zakládajícími členy jsou Universal Blue a Bazzite, ASUS Linux, ShadowBlip, PikaOS a Fyra Labs. Strategickými partnery a klíčovými přispěvateli ChimeraOS, Nobara, Playtron a další. Cílem je centralizovat úsilí, takže namísto toho, aby každá distribuce udržovala samostatné opravy systému a podporu hardwaru na

    … více »
    NUKE GAZA! 🎆 | Komentářů: 0
    včera 04:11 | Bezpečnostní upozornění

    V kryptografické knihovně OpenSSL bylo nalezeno 12 zranitelností. Opraveny jsou v upstream verzích OpenSSL 3.6.1, 3.5.5, 3.4.4, 3.3.6 a 3.0.19. Zranitelnosti objevila společnost AISLE pomocí svého autonomního analyzátoru.

    Ladislav Hagara | Komentářů: 1
    29.1. 20:11 | Zajímavý software

    Desktopové prostředí Xfce bude mít vlastní kompozitor pro Wayland s názvem xfwl4. V programovacím jazyce Rust s využitím stavebních bloků z projektu Smithay jej napíše Brian Tarricone. Úprava stávajícího xfwm4 tak, aby paralelně podporoval X11 i Wayland, se ukázala jako špatná cesta.

    Ladislav Hagara | Komentářů: 6
    29.1. 19:11 | Komunita

    Desktopové prostředí KDE Plasma 6.8 poběží už pouze nad Waylandem. Vývojáři, kteří s rozhodnutím nesouhlasí, vytvořili fork KDE Plasma s názvem SonicDE (Sonic Desktop Environment) s cílem zachovat a vylepšovat podporu X11.

    Ladislav Hagara | Komentářů: 8
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (6%)
     (0%)
     (10%)
     (24%)
     (3%)
     (5%)
     (2%)
     (11%)
     (32%)
    Celkem 693 hlasů
     Komentářů: 22, poslední 29.1. 23:06
    Rozcestník

    Dotaz: PyQT4 a vlákna

    19.1.2008 14:57 Jirka
    PyQT4 a vlákna
    Přečteno: 474×
    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á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.