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 04:44 | Nová verze

    Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    dnes 02:22 | Nová verze

    Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

    Ladislav Hagara | Komentářů: 1
    dnes 01:55 | Humor

    Microsoft zveřejnil zdrojový kód XAML Studia a uvolnil ho pod MIT licencí. XAML Studio je nástroj ze světa Windows, určený pro tvorbu uživatelského rozhraní aplikací pomocí XAML (Extensible Application Markup Language). Stalo se tak zhruba po osmi letech od prvního prohlášení Microsoftu, že se tento kód chystá zveřejnit.

    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 01:44 | Zajímavý projekt

    TimeCapsule, 'časová kapsle', je jazykový model trénovaný výhradně na datech z určitých míst a časových období, aby se tak napodobila autentická slovní zásoba, způsob vyjadřování a názory dané doby. Na Hugging face jsou k dispozici modely natrénované na historických textech dostupných v oblasti Londýna mezi lety 1800 až 1875.

    NUKE GAZA! 🎆 | Komentářů: 1
    včera 17:55 | Nová verze

    Radicle byl vydán ve verzi 1.6.0 s kódovým jménem Amaryllis. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Upozornění

    Zemřel Scott Adams, tvůrce komiksových stripů Dilbert parodujících pracovní prostředí velké firmy.

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

    Sdružení CZ.NIC vydalo novou verzi Knot Resolveru (6.1.0). Jedná se o první vydanou stabilní verzi 6, která je nyní oficiálně preferovanou a doporučovanou verzí, namísto předešlé verze 5. Více o Knot Resolveru 6 je možné se dočíst přímo v dokumentaci.

    VSladek | Komentářů: 1
    včera 01:22 | Nová verze

    Byl vydán Linux Mint 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 1
    13.1. 21:33 | Nová verze

    Wine bylo po roce vývoje od vydání verze 10.0 vydáno v nové stabilní verzi 11.0. Přehled novinek na GitLabu. Vypíchnuta je podpora NTSYNC a dokončení architektury WoW64.

    Ladislav Hagara | Komentářů: 5
    13.1. 16:11 | Nová verze

    Byl vydán Mozilla Firefox 147.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Firefox nově podporuje Freedesktop.org XDG Base Directory Specification. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 147 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (8%)
     (19%)
     (3%)
     (6%)
     (3%)
     (11%)
     (44%)
    Celkem 441 hlasů
     Komentářů: 12, poslední včera 21:12
    Rozcestník

    Dotaz: GTK socket

    28.7.2012 19:26 mika_hakkinen | skóre: 7 | olbramkostel
    GTK socket
    Přečteno: 400×

    Ahoj, potřeboval bych do mé aplikace vložit jinou aplikaci, třeba xterm. Píši v pythonu a používám GTK. GTK má na to metodu socket, pres kterou lze vlozit jinou aplikaci Na netu jsem našel spousty návodů jak to udělat. Problém je ten, že již do vytvořené aplikace, kde použivám gtk.DrawingArea, nemůžu použít gtk.Socket. Mám to napsané takhle:

     

    self.window = gtk.Window()

    socket = gtk.Socket()

    gtk.gdk.threads_init()

    self.window.resize(320,240)

    self.window.connect("delete_event", self.delete_event)

    self.window.connect("destroy", self.destroy)

    self.window.show_all() self.darea = gtk.DrawingArea()

    self.darea.connect("expose-event", self.menu_manager)

    self.window.add(self.darea) #zde je problem GtkWarning: Attempting to add a widget with type GtkSocket to a GtkWindow, but as a #GtkBin subclass a GtkWindow can only contain one widget at a time; it already contains a widget of type #GtkDrawingArea

    self.window.add(socket)

    self.window.show_all()

    xid = str(socket.get_id())

    print xid - pak nekde jinde zavolam xterm s parametrem xid a mel by se ukazat.

     

     

    pak kdyz zakomentuji radek, ktery prida DrawingArea, tak to funguje dobre. diky za tip

    Odpovědi

    28.7.2012 20:11 chrono
    Rozbalit Rozbalit vše Re: GTK socket
    A prečo majú byť na tom istom mieste dva elementy?
    29.7.2012 08:41 mika_hakkinen | skóre: 7 | olbramkostel
    Rozbalit Rozbalit vše Re: GTK socket
    Pouzit dva elementy neni podminkou. Jen to nedokazi vymyslet tak, aby bud gtk.socket byl v gtk.drawingarea. nebo naopak. idealni by byl v gtk.drawingarea prostor pro vlozeni toho gtk.socket.

    diky za nakopnuti
    29.7.2012 14:33 l4m4
    Rozbalit Rozbalit vše Re: GTK socket
    GtkDrawingArea není kontejner, takže to nejde. Za chvíli bude někdo chtít strkat GtkSocket do scrollbarů...

    Buď použij kontejner, který bude obsahovat GtkDrawingArea a GtkSocket. Nebo namísto GtkDrawingArea použij GtkLayout.

    GtkDrawingArea je celkově takový widget na nic, oproti vytvoření nového jednoduchého widgetu se ušetří trochu kódu, u složitějšího se neušetří nic nebo nic, co by stálo za řeč.
    29.7.2012 20:31 mika_hakkinen | skóre: 7 | olbramkostel
    Rozbalit Rozbalit vše Re: GTK socket
    Tak po dni badani jsem na nic neprisel. DrawingArea jsem nahradil za Layout. To bylo bez potizi. Ale jak vlozit do Gtk.Layout ten Gtk.socket nevim. Mam to napsane takhle:

    self.layout = gtk.Layout(None, None)

    self.layout.set_size(320,240)

    self.layout.put(self.socket,10,10)

    self.layout.put(self.darea,0,0)

    self.window.add(self.layout)

    a kdyz to spustim zadna chyba se neobjevi. A gtk.socket vypise XID, tak to jakoby funguje, ale nezobrazuje. Nekde jsem nasel, ze se prvne musi nastavit velikost, ale gtk.socket nic takoveho nema.

    uz tedy nevim
    29.7.2012 20:50 l4m4
    Rozbalit Rozbalit vše Re: GTK socket
    Nahradit je nahradit. Kreslit můžeš přímo na ten Layout.
    import gtk
    
    window = gtk.Window()
    window.connect('destroy', gtk.main_quit)
    gtk.gdk.threads_init()
    window.resize(320,240)
    layout = gtk.Layout()
    window.add(layout)
    
    socket = gtk.Socket()
    socket.set_size_request(200, 100)
    layout.put(socket, 40, 40)
    
    window.show_all()
    xid = str(socket.get_id())
    print(xid)
    
    gtk.main()
    
    Akorát mi v tom xtermu nefunguje vstup z klávesnice, a to ani když explicitně přidám key-press and key-release eventy a nastavím, že může mít keyboard focus. S tím nevím, co dělat, Socket/Plug jsem nikdy v praxi nepouži...
    30.7.2012 17:21 mika_hakkinen | skóre: 7 | olbramkostel
    Rozbalit Rozbalit vše Re: GTK socket
    tak uz to funguje, pomohlo set_size_request.
    Pavel Stárek avatar 30.7.2012 11:38 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: GTK socket
    Nevím, školy nemám, ale asi takhle: http://faq.pygtk.org/index.py?req=show&file=faq19.015.htp Po spuštění xtermu, je potřeba zjistit jeho window id a to pak zadat tomu socketu.
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    Pavel Stárek avatar 30.7.2012 11:40 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: GTK socket
    Á pardon, ten xterm a jeho window id se ti zřejmě vytváří. Takže má odpověď je zcela irelevantní :-)
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    2.8.2012 21:19 mika_hakkinen | skóre: 7 | olbramkostel
    Rozbalit Rozbalit vše Re: GTK socket
    Jeste bych potreboval do toho gtk.socket pridat treba tlacitko. diky
    2.8.2012 21:31 chrono
    Rozbalit Rozbalit vše Re: GTK socket
    Prečo práve do toho objektu? Nemôže byť vedľa neho?
    3.8.2012 15:25 mika_hakkinen | skóre: 7 | olbramkostel
    Rozbalit Rozbalit vše Re: GTK socket
    bohuzel to je design aplikace. Stacilo by, kdyby to mohl byt popup obrazek, ktery by byl uplne nad vsemi widgety. diky za tip
    3.8.2012 15:34 chrono
    Rozbalit Rozbalit vše Re: GTK socket
    Nenapadá mi zmysluplné využitie niečoho takého, každopádne môžeš vyskúšať dať GtkSocket a aj ten obrázok do GtkFixed.
    6.8.2012 20:07 mika_hakkinen | skóre: 7 | olbramkostel
    Rozbalit Rozbalit vše Re: GTK socket
    jeste bych potreboval poradit. Potreboval bych tem widgetum nastavit ruzne pruhlednost a prenaset je do popredi a pozadi. diky
    Josef Kufner avatar 7.8.2012 18:34 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: GTK socket
    Obsah socketu je samostatné okno a pokud ho chceš překrýt něčím v obalujícím okně, máš smůlu a bude to pod socketem. Na průhlednost a podobné vychytávky zapomeň (leda by jsi se chtěl patlat s xlib, ale to nechceš).

    Pokud můžeš upravit vestavovanou aplikaci, udělej z toho knihovnu a/nebo client-server architekturu.

    Pokud nemůžeš, tak dej svoje widgety vedle a nějak to zamaskuj.
    Hello world ! Segmentation fault (core dumped)

    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.