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 13:33 | IT novinky

    Krádež není inovace (Stealing Isn't Innovation). Koalice umělců, spisovatelů a tvůrců protestuje proti používání autorsky chráněných děl velkými technologickými společnostmi pro trénování AI systémů bez povolení či kompenzace.

    Ladislav Hagara | Komentářů: 1
    dnes 12:22 | IT novinky

    Stát, potažmo ministerstvo vnitra plánuje zřízení nového, neveřejného virtuálního operátora, který by byl primárně určený na zajištěni kritické infrastruktury státu. Cílem je zajistit udržitelné, bezpečné, mobilní, vysokorychlostní datové a hlasové služby umožňující přístup ke kritickým aplikacím IZS a krizového řízení.

    karkar | Komentářů: 3
    dnes 01:44 | Nová verze

    Byla vydána nová verze 10.0 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze nové balíčky ownCloud Infinite Scale a Uptime-Kuma.

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

    Enkodér a dekodér SVT-AV1 (Scalable Video Technology for AV1) byl vydán v nové major verzi 4.0.0.

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

    Byla vydána nová verze 3.0.8 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    24.1. 11:55 | Humor

    Microsoft poskytl FBI uživatelské šifrovací klíče svého nástroje BitLocker, nutné pro odemčení dat uložených na discích třech počítačů zabavených v rámci federálního vyšetřování. Tento krok je prvním známým případem, kdy Microsoft poskytl klíče BitLockeru orgánům činným v trestním řízení. BitLocker je nástroj pro šifrování celého disku, který je ve Windows defaultně zapnutý. Tato technologie by správně měla bránit komukoli kromě

    … více »
    NUKE GAZA! 🎆 | Komentářů: 33
    24.1. 01:44 | Komunita

    Spotify prostřednictvím svého FOSS fondu rozdělilo 70 000 eur mezi tři open source projekty: FFmpeg obdržel 30 000 eur, Mock Service Worker (MSW) obdržel 15 000 eur a Xiph.Org Foundation obdržela 25 000 eur.

    Ladislav Hagara | Komentářů: 4
    23.1. 18:11 | Zajímavý software

    Nazdar! je open source počítačová hra běžící také na Linuxu. Zdrojové kódy jsou k dispozici na GitHubu. Autorem je Michal Škoula.

    Ladislav Hagara | Komentářů: 3
    23.1. 16:55 | Nová verze

    Po více než třech letech od vydání verze 1.4.0 byla vydána nová verze 1.5.0 správce balíčků GNU Guix a na něm postavené stejnojmenné distribuci GNU Guix. S init systémem a správcem služeb GNU Shepherd. S experimentální podporou jádra GNU Hurd. Na vývoji se podílelo 744 vývojářů. Přibylo 12 525 nových balíčků. Jejich aktuální počet je 30 011. Aktualizována byla také dokumentace.

    Ladislav Hagara | Komentářů: 9
    23.1. 15:44 | Zajímavý software

    Na adrese gravit.huan.cz se objevila prezentace minimalistického redakčního systému GravIT. CMS je napsaný ve FastAPI a charakterizuje se především rychlým načítáním a jednoduchým ukládáním obsahu do textových souborů se syntaxí Markdown a YAML místo klasické databáze. GravIT cílí na uživatele, kteří preferují CMS s nízkými nároky, snadným verzováním (např. přes Git) a možností jednoduchého rozšiřování pomocí modulů. Redakční

    … více »
    2012 | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (5%)
     (0%)
     (10%)
     (22%)
     (3%)
     (5%)
     (2%)
     (12%)
     (34%)
    Celkem 623 hlasů
     Komentářů: 17, poslední 22.1. 15:24
    Rozcestník

    Dotaz: Gtk3 Perl menu a klávesové zkratky

    Brilantní modř avatar 18.4.2013 13:36 Brilantní modř | skóre: 14
    Gtk3 Perl menu a klávesové zkratky
    Přečteno: 355×

    Dobrý den.

    Budu rád, když mi někdo, kdo se vyzná, pomůže.

    Nejdřív se prosím podívejte na tento obrázek. Je na něm otevřené menu Soubor editoru Bluefish, nalevo v tomto menu jsou jednotlivé položky a u některých z nich je napravo uvedena klávesová zkratka.

    Mám dotaz, který se týká zobrazení klávesových zkratek v menu (tak, jak je to na obrázku): Jak se to dá udělat v Gtk2 nebo Gtk3 Perlu?

    Mějme tento kód:

    #!/usr/bin/perl
    use strict;
    use warnings;
    use locale;
    use utf8;
    use Glib qw(TRUE FALSE);
    use Gtk3;
    
    sub quitf {
        Gtk3->main_quit();
    }
    
    Gtk3->init;
    
    my $label = Gtk3::Label->new("Hokusy pokusy...");
    
    my $statusbar = Gtk3::Statusbar->new();
    my $context_id_label = $statusbar->get_context_id("working_label");
    my $message_id_label = $statusbar->push($context_id_label, "Experiment se stavovým řádkem");
    
    my $menu_bar = Gtk3::MenuBar->new();
    
    my $menu_bar_item_hokus = Gtk3::MenuItem->new();
    $menu_bar_item_hokus->set_label("Hokus");
    
    my $menu_bar_item_pokus = Gtk3::MenuItem->new();
    $menu_bar_item_pokus->set_label("Pokus");
    
    $menu_bar->append($menu_bar_item_hokus);
    $menu_bar->append($menu_bar_item_pokus);
    
    my $menu_hokus = Gtk3::Menu->new();
    
    my $menu_hokus_item_soubor = Gtk3::MenuItem->new();
    $menu_hokus_item_soubor->set_label("Soubor");
    
    my $menu_hokus_item_novy = Gtk3::MenuItem->new();
    $menu_hokus_item_novy->set_label("Nový");
    
    my $menu_hokus_item_ulozit = Gtk3::MenuItem->new();
    $menu_hokus_item_ulozit->set_label("Uložit");
    
    my $menu_hokus_item_zavrit = Gtk3::MenuItem->new();
    $menu_hokus_item_zavrit->set_label("Zavřít");
    
    $menu_hokus->append($menu_hokus_item_soubor);
    $menu_hokus->append($menu_hokus_item_novy);
    $menu_hokus->append($menu_hokus_item_ulozit);
    $menu_hokus->append($menu_hokus_item_zavrit);
    
    $menu_bar_item_hokus->set_submenu($menu_hokus);
    
    my $menu_pokus = Gtk3::Menu->new();
    
    my $menu_pokus_item_napoveda = Gtk3::MenuItem->new();
    $menu_pokus_item_napoveda->set_label("Nápověda");
    
    my $menu_pokus_item_oaplikaci = Gtk3::MenuItem->new();
    $menu_pokus_item_oaplikaci->set_label("O aplikaci");
    
    $menu_pokus->append($menu_pokus_item_napoveda);
    $menu_pokus->append($menu_pokus_item_oaplikaci);
    
    $menu_bar_item_pokus->set_submenu($menu_pokus);
    
    my $vbox = Gtk3::VBox->new(0, 5);
    $vbox->pack_start($menu_bar, FALSE, FALSE, 0);
    $vbox->pack_start($label, FALSE, FALSE, 5);
    $vbox->pack_end($statusbar, FALSE, FALSE, 0);
    
    my $window = Gtk3::Window->new("toplevel");
    $window->signal_connect("destroy" => sub {
        &quitf();
    });
    $window->add($vbox);
    $window->show_all();
    
    Gtk3->main;
    
    __END__
    

    Co do něj přidat, aby se dosáhlo kýženého výsledku?

    Mám totiž (jinou) aplikaci, která podporuje různé klávesové zkratky, a já bych je chtěl uvést v hlavním menu u jeho jednotlivých položek, tak, jak je to zvykem.

    Předem děkuji za všechny podnětné odpovědi.


    Řešení dotazu:


    Odpovědi

    Řešení 1× (Brilantní modř (tazatel))
    18.4.2013 19:14 potato
    Rozbalit Rozbalit vše Re: Gtk3 Perl menu a klávesové zkratky
    Nebudu se pokoušet psát něco v Perlu, nicméně jsou různé možnosti. Udělat to totálně ručně včetně vytváření GtkAccelLabel a jejich cpaní do těch položek menu. To vynechávám. Udělat to celé high-level přes UIManager, builder, etc. a nematlat se s konstrukcí widgetů v kódu. To asi nechceš. Takže ta středně ruční cesta:

    1. Nastavíš položkám menu accel_path (cestu).

    2. Vytvoříš (nebo zrecykluješ) AccelGroup, kterou nastavíš jak těm menu, tak tomu oknu.

    3. Definuješ akcelerátory pomocí accel_map_add_entry(), která bere právě ty cesty nastavené v bodě 1.

    Příklad v Pythonu bude snad alespoň trochu podobný:
    from gi.repository import Gtk, Gdk
    
    w = Gtk.Window()
    w.set_default_size(300, -1)
    w.connect('destroy', Gtk.main_quit)
    
    m = Gtk.MenuBar()
    w.add(m)
    
    i = Gtk.MenuItem()
    i.set_label('Menu')
    i.set_accel_path('<main>/Menu')
    m.add(i)
    
    mm = Gtk.Menu()
    i.set_submenu(mm)
    mm.set_accel_group(Gtk.AccelGroup())
    w.add_accel_group(mm.get_accel_group())
    
    ii = Gtk.MenuItem(label='Text')
    ii.set_accel_path('<main>/Menu/Test')
    mm.add(ii)
    
    a = Gtk.AccelMap.get()
    a.add_entry('<main>/Menu/Test', Gdk.KEY_t, Gdk.ModifierType.CONTROL_MASK)
    
    w.show_all()
    Gtk.main()
    

    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.