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 03:11 | Nová verze

    Linus Torvalds vydal jádro Linux 7.0. Podrobný výčet změn je ke zhlédnutí na stránce Kernel Newbies, stručné výběry v LWN (část první, druhá).

    |🇵🇸 | Komentářů: 0
    dnes 02:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME? Pravidelný přehled novinek v Týden v GNOME. Vypíchnout lze novou verzi 2026.1 přehrávače hudby Amberol (Flathub).

    Ladislav Hagara | Komentářů: 0
    včera 13:11 | Nová verze

    Byla vydána verze 12.0 s kódovým jménem Ecne linuxové distribuce Trisquel GNU/Linux. Založena je na Ubuntu 24.04 LTS a podporována bude do roku 2029. Trisquel patří mezi svobodné distribuce doporučované Nadací pro svobodný software (FSF).

    Ladislav Hagara | Komentářů: 0
    včera 05:33 | Nová verze

    Open-source citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 9. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    11.4. 18:33 | Komunita

    Libre Graphics Meeting 2026, tj. čtyřdenní konference a setkání vývojářů a uživatelů svobodných a otevřených grafických softwarů, proběhne od 22. do 25. dubna v Norimberku. Dění lze sledovat na Mastodonu.

    Ladislav Hagara | Komentářů: 0
    11.4. 03:11 | Zajímavý software

    Vývojář Alexandre Gomes Gaigalas na GitHubu zveřejnil c89cc.sh, parser a kompilátor jazyka C89 napsaný v pouhém jediném skriptu o přibližně 8000 řádcích čistého bashe (bez dalších externích závislostí), který generuje ELF64 binárky pro x86-64. Jedná se o velmi jednoduchý kompilátor, který nepodporuje direktivy #include a dokonce ani funkci printf (lze použít puts), všechny dostupné deklarace lze nalézt v proměnné _BUILTIN_LIBC na konci skriptu. Skript je volně dostupný pod ISC licencí.

    » FIDESZ🧡! « | Komentářů: 10
    10.4. 23:33 | Nasazení Linuxu

    Francouzská vláda oznámila, že v rámci strategie 'digitální suverenity' zahájí 'přechod od systému Windows k počítačům s operačním systémem Linux' (sa sortie de Windows au profit de postes sous système d'exploitation Linux). DINUM (meziresortní ředitelství pro digitální technologie) požádalo ministerstva, aby do podzimu 2026 vypracovaly konkrétní plány nasazení Linuxu. Francie již dříve migrovala části státní správy na otevřená řešení.

    » FIDESZ🧡! « | Komentářů: 31
    10.4. 05:22 | IT novinky

    Nezisková organizace Electronic Frontier Foundation (EFF) hájící občanské svobody v digitálním světě po téměř 20 letech opouští platformu X (dříve Twitter). Na platformách Bluesky, Mastodon, LinkedIn, Instagram, TikTok, Facebook, Threads a YouTube zůstává.

    Ladislav Hagara | Komentářů: 6
    10.4. 03:33 | Nová verze

    Terminálový textový editor GNU nano byl vydán ve verzi 9.0. Vylepšuje chování horizontálního posouvání pohledu na dlouhé řádky a chování některých klávesových zkratek. Více v seznamu změn.

    |🇵🇸 | Komentářů: 0
    9.4. 19:22 | IT novinky

    Ministerstvo financí ve spolupráci s finanční správou dnes představilo beta verzi aplikace využívající umělou inteligenci pro předvyplnění daňového přiznání. Není třeba přepisovat údaje z různých potvrzení, ani hledat správné řádky, kam údaje napsat. Stačí nahrát dokumenty a využít AI.

    Ladislav Hagara | Komentářů: 9
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (13%)
     (30%)
     (3%)
     (6%)
     (2%)
     (15%)
     (24%)
    Celkem 1288 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    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: 251×
    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.