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 18:55 | Nová verze

    Byla vydána první veřejná preview verze PrusaSliceru 3.0. Přesně 15 let po zveřejnění první verze Slic3ru, které připadlo na 1. září 2011. Jedná se o dosud největší upgrade PrusaSliceru: "Řídili jsme se tím, co skutečně potřebujete, a tak jsme například zcela zahodili stávající uživatelské rozhraní a vytvořili ho znovu od nuly. Přinášíme také nový systém projektů, kompletně přepracované profily navržené pro moderní tiskárny s větším

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 15:55 | Nová verze

    Byl vydán Mozilla Firefox 155.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze Smart Window, zatím ale dostupné pouze pro uživatele v USA, Kanadě a Francii. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 155 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    dnes 12:33 | IT novinky

    Tima Cooka na pozici generálního ředitele společnosti Apple dnešním dnem nahradil John Ternus, který byl dosud odpovědný za hardware. Tim Cook vedl Apple od roku 2011, kdy funkci převzal od později zesnulého spoluzakladatele společnosti Stevea Jobse. Za 15 let v čele Applu více než zdvojnásobil tržní hodnotu firmy.

    Ladislav Hagara | Komentářů: 1
    dnes 11:00 | Pozvánky

    Organizátoři konference LinuxDays ukončil veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata pro letošní ročník. Hlasovat můžete do pondělí 7. září, poté bude podle výsledků hlasování sestaven program pro letošní ročník.

    Petr Krčmář | Komentářů: 3
    dnes 10:55 | Nová verze

    Servo, engine webového prohlížeče napsaný v Rustu, byl vydán ve verzi 0.5.0. Novinky shrnuje přehled projektu za červenec. Došlo k dalšímu pokroku ve vykreslování webových stránek. Současným cílem projektu je vytvořit komponentu webového prohlížeče jako WebView pro použití v jiných aplikacích.

    |🇵🇸 | Komentářů: 1
    dnes 10:44 | IT novinky

    IKEA a XBOX představují kolekci YXSTABY (pdf). Ta přináší designová a praktická řešení, díky nimž se prostor pro hraní během sekundy promění v útulný a harmonický domov.

    Ladislav Hagara | Komentářů: 2
    dnes 02:00 | Nová verze

    Jonathan Thomas oznámil vydání verze 4.0 nelineární střižny OpenShot. Nově podporuje nahrávání obrazu a zvuku, vylepšuje uživatelské rozhraní, mj. color grading, přidává další efekty a mnoho dalšího (seznam změn).

    |🇵🇸 | Komentářů: 0
    včera 17:22 | Komunita

    Proběhlo hlasování o používání LLM při vývoji Debianu. Vývojáři Debianu si odhlasovali zodpovědné využívání generativní umělé inteligence.

    Ladislav Hagara | Komentářů: 2
    včera 16:11 | Komunita

    Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří vývoj Flatpaku částkou 508 640 eur.

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

    Byla vydána první veřejná verze v7.0-mk2 projektu Multikernel (mklinux), který umožňuje spouštět více nezávislých linuxových jader současně na jednom stroji bez hypervizoru.

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

    Dotaz: pyQT4 a signál

    29.6.2007 13:35 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    pyQT4 a signál
    Přečteno: 576×
    Učim se programovat v pyqt, ale mám jeden dotaz. Například mám jednoduché okno s tlačítkem. Při stisku tlačítka se mi spustí fce, která třeba odpočítává 10 sekund a po odpočítání se program vypne. Ovšem během odpočítávání se GUI přestane překreslovat a nejde s ním pracovat. Proto potřebuju radu, jak spustit tuto fci odděleně. Dohledal jsem si něco o použití vláken, ale i s nimi se mě nedaří docílit požadovaného výsledku.

    Odpovědi

    Luboš Doležel (Doli) avatar 29.6.2007 13:37 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    Já v Pythonu nedělám, ale tohle v C++ řeším pomocí QTimer posílajícího signály (nebo QTimer::singleShot(), když jde jen o jeden).
    29.6.2007 13:47 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    A co když bych chtěl v té fci provádět něco jiného, co by zabralo více času, jak bych pak zajistil aby se GUI během provádění funkce překreslovalo?
    Luboš Doležel (Doli) avatar 29.6.2007 13:50 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    Pak buď použít jiné vlákno nebo volat QCoreApplication::processEvents()
    29.6.2007 14:15 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    Bohužel jsem nic o QCoreApplication::processEvents() společně s pythonem nenašel. Ani nic, co by se podobalo. Snad mi poradí nějaký znalý pythonista, přesto dík za radu.
    29.6.2007 15:09 hanzz | skóre: 19 | blog: hanzz
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    Budes se muset naucit vyuzivat dokumentaci k QT4, ktera je psana pro C++. Pro Python dokumentace moc neni, protoze zkusenejsi nemaji problem prebirat dokumentaci z C++ a tak neni motivace neco psat.

    Jedna z moznosti jak vyresit tvuj problem ja pouziti vlaken (Threadu), ale to obnasi vetsi znalosti QT :). Ja ve svych aplikacich pouzivam QThread pro vlakna a QMutex spolecne se signaly a sloty mezi vlakny pro synchronizaci vlaken mezi sebou. Podivej se do dokumentace k PyQt na priklad malderbrot.py nebo na dalsi priklady, ktere se zabyvaji thready. Kdyztak bych mohl poslat jednoduchy skript, ktery by mohl poslouzit jako ukazka threadu a signaly mezi nimy v QT4. (ackoliv PyQt4 obsahuje nektere chyby, ktere jsem v tom skriptu musel obejit)
    29.6.2007 15:10 hanzz | skóre: 19 | blog: hanzz
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    Aha.. az ted jsem si precetl, ze uz si vlakna zkousel.. S vlakny to urcite pujde... posli ukazku kodu, jak je pouzivas... :)
    29.6.2007 15:49 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    Já jsem použil ty vlákna, co nabízí python. Zkusím se kouknout na QThread. Dík za nasměrování
    29.6.2007 16:05 hanzz | skóre: 19 | blog: hanzz
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    Tak melo by to fungovat i s normalnimi python vlakny, ale s temi se pak blbe (vlastne nevim, jestli to jde vubec) prenasi signaly mezi vlaknem a hlavni aplikaci :)
    29.6.2007 23:59 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    posli ty priklady na www.py.cz pls
    USE="-gnome -kde";turris
    30.6.2007 08:34 hanzz | skóre: 19 | blog: hanzz
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    kde tam? :) sorry, ze se ptam tak blbe, ale nejak tam neumim sekci o PyQt4 najit
    29.6.2007 16:04 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    V pythonu používám GTK. Vím, že je ti to k ničemu, ale když už to tu mám ...
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import gtk, gobject
    
    class Killme:
        def __init__(self):
            self.button = gtk.ToggleButton()
            self.timeout = None
            self.toggled()
            self.button.connect('toggled', self.toggled)
            self.button.show()
            w = gtk.Window()
            w.add(self.button)
            w.connect('destroy', gtk.main_quit)
            w.show()
            gtk.main()
    
        def run_timer(self, foo = None):
            self.seconds -= 1
            self.button.set_label(u'Chcípnu za %d sekund' %self.seconds)
            self.timeout = gobject.timeout_add(1000, self.run_timer, None)
            if self.seconds == 0:
                gtk.main_quit()
    
        def stop_timer(self):
            if self.timeout:
                gobject.source_remove(self.timeout)
            self.button.set_label(u'Zapni odpočítávání')
    
        def toggled(self, foo = None):
            self.seconds = 10
            if self.button.get_active():
                self.run_timer()
            else:
                self.stop_timer()
    
    k = Killme()
    
    Jinak vláknům, hlavní smyčce událostí, časově náročným funkcím a obnovování GUI se věnuje celá sekce PyGTK FAQ: http://faq.pygtk.org/index.py?req=index
    v Qt jistě bude něco podobného ...
    29.6.2007 16:20 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    Zkusil jsem toto(použito z Helloworld z abclinuxu.cz :-D ):
    #!/usr/bin/python
    from qt import *
    import time
    import threading
    def click():
    	v = threading.Thread(target = vlakno)
    	v.start()
    def vlakno():
    	time.sleep(5)
    	print "ok"
    app=QApplication([])
    win=QMainWindow()
    win.button=QPushButton(win,"Hello")
    win.button.setText("Hello World")
    win.show()
    app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
    app.connect(win.button, SIGNAL("clicked()"),click)
    app.exec_loop()
    
    a opravdu se GUI během těch 5-ti vteřin překresluje.
    29.6.2007 16:23 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    Ups, jak vložit kód, aby byl správně naformátovaný?
    Luboš Doležel (Doli) avatar 29.6.2007 17:51 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    Stačí použít tag PRE, pak nejsou zapotřebí ani ty BR. Opravil jsem to.
    29.6.2007 18:23 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
    Rozbalit Rozbalit vše Re: pyQT4 a signál
    ok, dík

    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.