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 17:55 | IT novinky

    Společnost Fujitsu představila FUJITSU-MONAKA CPU a Fujitsu MONAKA Server. Navrženo, vyvinuto a vyrobeno v Japonsku. Pro suverénní AI infrastrukturu.

    Ladislav Hagara | Komentářů: 0
    dnes 16:44 | IT novinky

    Předprodej v květnu představených notebooků Googlebook, nástupců notebooků Chromebook, bude spuštěn v pondělí 21. září.

    Ladislav Hagara | Komentářů: 0
    včera 23:22 | Nová verze

    Byla vydána betaverze Fedora Linuxu 45 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 20. října. S konzolí kmscon místo fbcon. Současně byla vydána betaverze Fedora Linux Asahi Remixu 45. S podporou čipů M3.

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | Nová verze

    Po půl roce vývoje od vydání verze 50 bylo vydáno GNOME 51 s kódovým názvem "A Coruña" (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře. Videopředstavení na PeerTube a YouTube.

    Ladislav Hagara | Komentářů: 12
    včera 20:44 | IT novinky

    OpenAI spolupracuje s konkurenty Anthropic a Google DeepMind ze skupiny Alphabet na bezpečnosti umělé inteligence (AI). Globální obavy ohledně existenčních rizik umělé inteligence vzrostly poté, co se o víkendu sešli vedoucí předních amerických firem z odvětví AI a vyzvali k pozastavení vývoje technologie.

    Ladislav Hagara | Komentářů: 3
    včera 20:33 | IT novinky

    Evropská unie navrhne zákaz sociálních sítí, online her a chatbotů pro děti mladší 13 let a možnost účtu pro děti do 15 let jen se souhlasem rodičů, oznámila šéfka Evropské komise Ursula von der Leyenová v dnešním projevu ve Štrasburku. Návrh předpisu nazvaného EU Kids Act představí Evropská komise ve čtvrtek. Von der Leyenová zdůraznila, že chce, aby se rovněž změnilo základní pravidlo: platformy budou muset dokázat, že jsou bezpečné.

    … více »
    Ladislav Hagara | Komentářů: 28
    15.9. 22:55 | Nová verze

    Byla vydána Java 27 / JDK 27. Nových vlastností (JEP - JDK Enhancement Proposal) je 9.

    Ladislav Hagara | Komentářů: 0
    15.9. 17:44 | Nová verze

    Byl vydán Mozilla Firefox 156.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vestavěný prohlížeč PDF se nyní spouští o 45 % rychleji. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 156 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    15.9. 14:11 | Nová verze

    Článek na Raspberry Pi představuje nový vzhled desktopu operačního systému Raspberry Pi OS v aktuálním vydání 2026-09-15.

    Ladislav Hagara | Komentářů: 2
    15.9. 14:00 | Bezpečnostní upozornění

    Nové verze Roundcube Webmailu 1.6.19 a 1.7.4 řeší několik zranitelností.

    vencour | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2687 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: GTK socket

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

    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.