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 12:33 | Zajímavý projekt

    Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 12:22 | Nová verze

    Byla vydána nová verze 3.7.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.

    Ladislav Hagara | Komentářů: 0
    včera 05:00 | Komunita

    Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).

    Ladislav Hagara | Komentářů: 6
    13.2. 19:44 | Zajímavý projekt

    Eric Migicovsky představil Pebble Emulator, tj. emulátor hodinek Pebble (PebbleOS) běžící ve webovém prohlížeči. Za 6 hodin jej napsal Claude Code. Zdrojové kódy jsou k dispozici na GitHubu.

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

    Byla vydána nová verze 3.41 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.11 souvisejícího programovacího jazyka Dart (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    13.2. 12:11 | IT novinky

    Rusko zcela zablokovalo komunikační platformu WhatsApp, řekl včera mluvčí Kremlu Dmitrij Peskov. Aplikace, jejímž vlastníkem je americká společnost Meta Platforms a která má v Rusku na 100 milionů uživatelů, podle Peskova nedodržovala ruské zákony. Mluvčí zároveň lidem v Rusku doporučil, aby začali používat domácí aplikaci MAX. Kritici tvrdí, že tato aplikace ruské vládě umožňuje lidi sledovat, což úřady popírají.

    Ladislav Hagara | Komentářů: 15
    13.2. 11:44 | IT novinky

    Před 34 lety, ve čtvrtek 13. února 1992, se tehdejší Česká a Slovenská Federativní Republika oficiálně (a slavnostně) připojila k Internetu.

    Ladislav Hagara | Komentářů: 2
    13.2. 04:44 | Humor

    Agent umělé inteligence vytvořil 'útočný' článek o Scottu Shambaughovi, dobrovolném správci knihovny matplotlib, poté, co vývojář odmítl agentem navrženou změnu kódu (pull request). 'Uražený' agent autonomně sepsal a publikoval na svém blogu článek, který přisuzuje Shambaughovi smyšlené motivace, egoismus a strach z AI coby konkurence.

    NUKE GAZA! 🎆 | Komentářů: 31
    12.2. 20:11 | Nová verze

    Bylo vydáno Ubuntu 24.04.4 LTS, tj. čtvrté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.

    Ladislav Hagara | Komentářů: 0
    12.2. 17:44 | Pozvánky

    V pátek 20. února 2026 se v pražské kanceláři SUSE v Karlíně uskuteční 6. Mobile Linux Hackday, komunitní setkání zaměřené na Linux na mobilních zařízeních, kernelový vývoj a uživatelský prostor. Akce proběhne od 10:00 do večera. Hackday je určen všem, kteří si chtějí prakticky vyzkoušet práci s linuxovým jádrem i uživatelským prostorem, od posílání patchů například pomocí nástroje b4, přes balíčkování a Flatpak až po drobné úpravy

    … více »
    lkocman | Komentářů: 7
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (11%)
     (27%)
     (3%)
     (4%)
     (1%)
     (12%)
     (27%)
    Celkem 869 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    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.