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í
×
    včera 20:11 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma. V Týdnu v GNOME je zmíněn flatpak balíček pro GIMP 0.54.1 z roku 1996. Jedná se o poslední verzi GIMPu postavenou nad toolkitem Motif.

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

    Home Assistant Operating System, tj. linuxová distribuce optimalizována pro hostování Home Assistanta a jeho aplikací, byl vydán v nové major verzi 18.0.

    Ladislav Hagara | Komentářů: 0
    včera 18:11 | Komunita

    Po šestiletém úsilí byla z jádra Linux odstraněna funkce strncpy(). Všechna předchozí volání této funkce byla převedena na bezpečnější alternativy.

    Ladislav Hagara | Komentářů: 1
    včera 17:22 | Nová verze

    Byla vydána nová verze 261 správce systému a služeb systemd (Wikipedie, GitHub). Z novinek lze vypíchnout nový subsystém IMDS (Cloud "Instance Metadata Service"), nový příkaz storagectl nebo novou komponentu systemd-sysinstall.

    Ladislav Hagara | Komentářů: 2
    včera 12:00 | Nová verze

    Vývojové prostředí Qt Creator bylo vydáno ve verzi 20 (seznam změn). Novinky zahrnují hlavně rozšíření pro integraci LLM agentů nebo minimalistický editační režim uživatelského rozhraní („zen mode“).

    |🇵🇸 | Komentářů: 0
    19.6. 10:22 | Humor

    Už jste se prolétli na webu Google Earth? Přibyl tam Simulátor letu (Nástroje / Simulátor letu). Funguje i bez účtu Google [𝕏].

    Ladislav Hagara | Komentářů: 0
    19.6. 09:55 | Nová verze

    Byla vydána nová verze 4.7 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 3
    18.6. 13:33 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.6. Přehled novinek s náhledy v oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    18.6. 12:44 | IT novinky

    V Edici CZ.NIC, knižní řady správce české národní domény, vychází nová kniha Martina Malého Kódy, buildy, firmwary. Autor po půl roce od vydání předchozího titulu přichází se svou již sedmou knihou, tentokrát zaměřenou na vývoj programového vybavení pro embedded zařízení. Publikace s podtitulem Základy vývojářského řemesla pro tvůrce hobby elektroniky nabízí praktického průvodce pro všechny, kdo své projekty vytvořené s Arduinem

    … více »
    Ladislav Hagara | Komentářů: 0
    18.6. 11:44 | Komunita

    V Brně na FIT VUT probíhá dvoudenní open source komunitní konference DevConf.CZ 2026. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (3%)
     (15%)
     (26%)
    Celkem 1952 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Python GTK+

    21.7.2015 16:34 Ondřej Kolín
    Python GTK+
    Přečteno: 421×

    Zdravím, nejde mi rozchodit v Python 2.7.* a GTK+ (gi.repository) DnD mezi dvěma iconview, netuší někdo, kde by mohl být problém?



    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    from gi.repository import Gtk, Gdk
    from gi.repository.GdkPixbuf import Pixbuf
    (TARGET_ENTRY_TEXT, TARGET_ENTRY_PIXBUF) = range(2)
    (COLUMN_TEXT, COLUMN_PIXBUF) = range(2)

    DRAG_ACTION = Gdk.DragAction.COPY

    icons = ["gtk-cut", "gtk-paste", "gtk-copy"]

    win = Gtk.Window()
    content = Gtk.VBox()
    #source view
    liststore = Gtk.ListStore(Pixbuf, str)
    sourceview = Gtk.IconView.new()
    sourceview.set_model(liststore)
    sourceview.set_pixbuf_column(0)
    sourceview.set_text_column(1)

    sourceview.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK, [],
    DRAG_ACTION)
    def on_drag_data_get( widget, drag_context, data, info, time):
    selected_path = self.get_selected_items()[0]
    selected_iter = self.get_model().get_iter(selected_path)
    print widget.get_model().get_iter(selected_iter, 1)
    sourceview.connect("drag-data-get", on_drag_data_get)

    for icon in icons:
    pixbuf = Gtk.IconTheme.get_default().load_icon(icon, 64, 0)
    liststore.append([pixbuf, "Label"])

    content.add(sourceview)
    #target view
    targetstore = Gtk.ListStore(Pixbuf, str)
    targetstore.append([Gtk.IconTheme.get_default().load_icon("gtk-save", 64,0), "X"])
    targetview = Gtk.IconView.new()
    targetview.set_model(targetstore)
    targetview.set_pixbuf_column(0)
    targetview.set_text_column(1)
    targetview.drag_dest_set(Gtk.DestDefaults.ALL, [], DRAG_ACTION)


    def on_drag_data_received(self, widget, drag_context, x,y, data,info, time):
    text = data.get_text()
    print("Received text: %s" % text)
    targetview.connect("drag-data-received", on_drag_data_received)

    content.add(targetview)

    win.add(content)
    win.connect("delete-event", Gtk.main_quit)
    win.show_all()
    Gtk.main()

    Odpovědi

    21.7.2015 16:35 Ondřej Kolín
    Rozbalit Rozbalit vše Re: Python GTK+
    Nějak si nekamarádím se zdejším formátováním (byl jsem línej cheknout to jinde než v tom WISIWYG editoru, omlouvám se.
    
    	
    
        #!/usr/bin/env python
        # -*- coding: utf-8 -*-
        from gi.repository import Gtk, Gdk
        from gi.repository.GdkPixbuf import Pixbuf
        (TARGET_ENTRY_TEXT, TARGET_ENTRY_PIXBUF) = range(2)
        (COLUMN_TEXT, COLUMN_PIXBUF) = range(2)
         
        DRAG_ACTION = Gdk.DragAction.COPY
         
        icons = ["gtk-cut", "gtk-paste", "gtk-copy"]
         
        win = Gtk.Window()
        content = Gtk.VBox()
        #source view
        liststore = Gtk.ListStore(Pixbuf, str)
        sourceview = Gtk.IconView.new()
        sourceview.set_model(liststore)
        sourceview.set_pixbuf_column(0)
        sourceview.set_text_column(1)
         
        sourceview.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK, [],
                    DRAG_ACTION)
        def on_drag_data_get( widget, drag_context, data, info, time):
            selected_path = self.get_selected_items()[0]
            selected_iter = self.get_model().get_iter(selected_path)
            print widget.get_model().get_iter(selected_iter, 1)
        sourceview.connect("drag-data-get", on_drag_data_get)
         
        for icon in icons:
            pixbuf = Gtk.IconTheme.get_default().load_icon(icon, 64, 0)
            liststore.append([pixbuf, "Label"])
         
        content.add(sourceview)
        #target view
        targetstore = Gtk.ListStore(Pixbuf, str)
        targetstore.append([Gtk.IconTheme.get_default().load_icon("gtk-save", 64,0), "X"])
        targetview = Gtk.IconView.new()
        targetview.set_model(targetstore)
        targetview.set_pixbuf_column(0)
        targetview.set_text_column(1)
        targetview.drag_dest_set(Gtk.DestDefaults.ALL, [], DRAG_ACTION)
         
         
        def on_drag_data_received(self, widget, drag_context, x,y, data,info, time):
            text = data.get_text()
            print("Received text: %s" % text)
        targetview.connect("drag-data-received", on_drag_data_received)
         
        content.add(targetview)
         
        win.add(content)
        win.connect("delete-event", Gtk.main_quit)
        win.show_all()
        Gtk.main()
    
    
    
    21.7.2015 17:46 chrono
    Rozbalit Rozbalit vše Re: Python GTK+
    Problém je, že je parameter targets pri enable_model_drag_source a drag_dest_set prázdny. Je možné to tam dať priamo pri volaní tej funkcie, prípadne sa to môže nastaviť neskôr, pomocou drag_source_set_target_list a drag_dest_set_target_list (prípadne sa môžu použiť pomocné funkcie, ktoré umožňujú jednoduché pridanie niektorých formátov).
    21.7.2015 20:23 KOLEGA
    Rozbalit Rozbalit vše Re: Python GTK+
    Díky za odpověď, mohl by jsi mi to hodit do kódu? Omlouvám se, že jsem tak neschopnej, ale jsem úplně vygumovanej ... Mě jde jenom o to abych při drag n drop něco vypsal ... Snad se dostanu pak zase dál ... Ještě jednou fakt díky
    21.7.2015 21:34 chrono
    Rozbalit Rozbalit vše Re: Python GTK+
    V tom originálnom kóde ale všetko potrebné je (je tam aj to vypísanie niečoho): 19. Drag and Drop
    21.7.2015 22:14 KOLEGA | skóre: 17 | blog: odpocinuti_vecne
    Rozbalit Rozbalit vše Re: Python GTK+
    Díky za link, podle něj jsem to nerozchodil ... Jde o to, že autor tam používá label, kterej se chová trochu jinak než itemview ...

    Zkoušel jsem přepisovat jeden cčkovej kód, kde to chodilo, ale ten jsem taky nerozchodil ...

    Nicméně stejně díky, asi to nechám odležet, až se něco doučím, tak se k tomu vrátím ...

    tady je ten odkaz na to cčko, což je skoro to přesně co chci ...
    21.7.2015 22:14 KOLEGA | skóre: 17 | blog: odpocinuti_vecne
    Rozbalit Rozbalit vše Re: Python GTK+
    http://pastebin.com/dxyBaqhU

    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.