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 12:11 | IT novinky

    Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.

    Ladislav Hagara | Komentářů: 2
    včera 14:22 | Bezpečnostní upozornění

    V přihlašovací obrazovce LightDM KDE (lightdm-kde-greeter) byla nalezena a již opravena eskalace práv (CVE-2025-62876). Detaily v příspěvku na blogu SUSE Security.

    Ladislav Hagara | Komentářů: 5
    včera 13:22 | Nová verze

    Byla vydána nová verze 7.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 15.0.1. Další novinky v příslušném seznamu.

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

    Česká národní banka (ČNB) nakoupila digitální aktiva založená na blockchainu za milion dolarů (20,9 milionu korun). Na vytvořeném testovacím portfoliu, jehož součástí jsou bitcoin, stablecoiny navázané na dolar a tokenizované depozitum, chce získat praktickou zkušenost s držením digitálních aktiv. Portfolio nebude součástí devizových rezerv, uvedla dnes ČNB v tiskové zprávě.

    Ladislav Hagara | Komentářů: 40
    včera 03:22 | IT novinky

    Apple představil iPhone Pocket pro stylové přenášení iPhonu. iPhone Pocket vzešel ze spolupráce značky ISSEY MIYAKE a Applu a jeho tělo tvoří jednolitý 3D úplet, který uschová všechny modely iPhonu. iPhone Pocket s krátkým popruhem se prodává za 149,95 dolarů (USA) a s dlouhým popruhem za 229,95 dolarů (USA).

    Ladislav Hagara | Komentářů: 17
    včera 02:33 | Nová verze

    Byla vydána nová stabilní verze 7.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 142. Přehled novinek i s náhledy v příspěvku na blogu.

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

    Společnost Epic Games vydala verzi 5.7 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    13.11. 16:22 | Bezpečnostní upozornění

    Intel vydal 30 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20251111 mikrokódů pro své procesory.

    Ladislav Hagara | Komentářů: 0
    13.11. 15:33 | Nová verze

    Byla vydána říjnová aktualizace aneb nová verze 1.106 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.106 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 1
    13.11. 12:11 | Komunita

    Canonical pro své zákazníky, předplatitele Ubuntu Pro, prodloužil podporu Ubuntu LTS z 12 let na 15 let (Legacy add-on). Týká se verzí od 14.04 (Trusty Tahr).

    Ladislav Hagara | Komentářů: 2
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (47%)
     (18%)
     (18%)
     (23%)
     (15%)
     (22%)
     (15%)
     (16%)
    Celkem 353 hlasů
     Komentářů: 16, poslední 12.11. 18:21
    Rozcestník

    Dotaz: python pygtk nejde deiconify pri pouziti threading

    17.10.2013 20:07 adrinko | skóre: 22
    python pygtk nejde deiconify pri pouziti threading
    Přečteno: 230×
    Ahojte, mam tento kod, ale co je zaujimave, ked pouzivan threading modul tak v topko mi neviem preco nezobrazi okno po zavolani tejto funkcie topko(tam je deiconify, show) Mohli by ste mi prosim poradit ako to napravit?
    # -*- coding: utf-8 -*-
    import sys       
    import traceback  
    import os 
    import threading
    import psutil 
    
    def we_are_frozen():
      return hasattr(sys, "frozen")
    
    def module_path():
      encoding = sys.getfilesystemencoding()
      if we_are_frozen():
        return os.path.dirname(unicode(sys.executable, encoding))
      return os.path.dirname(unicode(__file__, encoding))
      
    os.environ['LANGUAGE'] = "en" 
    import elib.intl                 
    import pygtk
    pygtk.require("2.0")
    import gtk
    import gobject
    import urllib2
    import datetime
    import time, platform
    from _winreg import *
    import warnings 
    warnings.simplefilter('ignore', Warning)
    
    
    def hooo(err, ret=None, error=''): 
      print traceback.format_exc()
      print err
      while gtk.events_pending():
        gtk.main_iteration()
      gtk.gdk.flush()
      topko()
      topko()
    
    def topko(): 
      app.okno.deiconify()
      gdkwin = app.okno.window
      gdkwin.set_keep_above(True) 
      gdkwin.set_keep_above(False)
      gdkwin.show()  
    
    class jj:
        def __init__(self):
    
            local_path=os.path.join(module_path(), "lg")   
            elib.intl.install('translation', local_path)     
            self.okno = gtk.Window(gtk.WINDOW_TOPLEVEL) 
            self.okno.iconify()
            self.okno.resize(400,50)
            self.okno.show_all()
                                       
            #self.xx()
    
        def play(self):
            threading.Thread(target=self.xx).start()
        
        def xx(self):
          db="a.s"
          if os.path.isfile(db.decode('utf8').replace('\\','/')) == False: 
            hooo('5','')  
            return False  
    
    if __name__ == "__main__":
        gtk.threads_init()
        app = jj()
        app.play()
        
        gtk.threads_enter() 
        gtk.main()
        gtk.threads_leave() 

    Odpovědi

    17.10.2013 21:14 potato
    Rozbalit Rozbalit vše Re: python pygtk nejde deiconify pri pouziti threading
    Pokud správně čtu, jak to probíhá, tak nejen voláš z vedlejšího threadu GUI funkce, což není obecně podporováno, ale dokonce se z něj pokoušíš ručně iterovat Gtk+ main loop, což už nemůže fungovat vůbec. Standardní postup: v jednom vláknu běží Gtk+ main loop; ostatní, když potřebují něco poslat do GUI, používají g_idle_add() a podobné funkce.
    17.10.2013 21:23 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: python pygtk nejde deiconify pri pouziti threading
    priznám sa, moc s tým nemám skúsenosti, ale aspoň mi to zaručí, že okno "nezamrzne", pokiaľ funkcia beží dlho (spracováva dáta z db). no ale teraz k veci - našla by sa nejaká rada, ako by som následne v topko donútil okno vystúpiť do popredia a zobraziť ho?
    17.10.2013 21:51 potato
    Rozbalit Rozbalit vše Re: python pygtk nejde deiconify pri pouziti threading
    Že ti okno nezamrzne, pokud funkce běží dlouho, má zajišťovat to, že ta věc, co běží dlouho, běží parallelně v jiném vlákně než GUI -- což tedy v CPythonu zatím reálně nejde, protože interpret používá globální zámek, takže se všechno vykonává sériově. Další možnost je použít modul multiprocessing a spouštět to v jiném procesu. Nebo tu dlouho běžící věc vykonávat po malých kouscích uvnitř main loop (nikoli vně).

    Na deikonifikaci, zobrazení a posunutí na popředí normálně slouží metoda Window.present().

    Ale pokud ti nefunguje, protože nějak svérázně zasahuješ do vykonávání main loop, tak je rada don't do it then...
    17.10.2013 22:46 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: python pygtk nejde deiconify pri pouziti threading
    vďaka za teóriu, osobne by mi ale dosť pomohol názorný príklad. nie som z toho moc múdry.. teda ako by som to mal zmeniť, aby to zároveň nezamrzlo a zároveň fungovala aj deikonifikácia.

    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.