ARCHIV |
|||||
Software (10844)
Distribuce (131)
Skripty (697)
Menu
Diskuze
Informace
|
Perl (123) - Gtk2 - základní práce s obrázkyV druhém dílu série o Gtk2 budeme vkládat ikony do různých widgetů, avšak podíváme se též na obrázky obecně. Tlačítko ze stockuObyčejné tlačítko již vytvořit umíme. Stock je množina speciálních standardizovaných tlačítek. Jsou to tedy šablony, pomocí kterých můžeme tvořit tlačítka do našich aplikací. To v tomto případě znamená, že se zobrazí v tlačítku ještě nějaká ikona z používaného prostředí (například červený křížek pro tlačítko Zrušit apod.). Seznam šablon pro tlačítka nalezneme v poli Gtk2::Stock->list_ids. Podívejme se na pár úvodních hodnot.
Abychom přesně věděli, o čem je řeč, podívejme se, jak jednotlivá stock tlačítka vypadají. Tato stock tlačítka se vytvářejí pomocí speciálního konstruktoru new_from_stock widgetu Gtk2::Button. Tomu předáváme vždy některý z řetězců z předchozího seznamu. Podívejme se, jak vytvoříme tlačítko Ano (na obrázku první sloupec, pátý řádek).
Nyní s tímto tlačítkem již manipulujeme stejně jako s běžným tlačítkem. Vlastní stock tlačítkoPoznamenejme, že do stocku lze definovat vlastní tlačítka. Ukažme si, jak se to provede. Základem je metoda add, kterou voláme nad třídou Gtk2::Stock.
Nyní se v seznamu Gtk2::Stock->list_ids objeví též moje-vlastni-tlacitko a můžeme s ním pracovat stejně jako s ostatními. Jinými slovy, můžeme nyní tlačítkovému konstruktoru new_from_stock předávat řetězec moje-vlastni-tlacitko. Avšak v tuto chvíli nemáme u tlačítka žádnou ikonu. Zde nestačí přiřadit soubor, ale je to trochu složitější. Pro přiřazení ikony ze souboru ./ikona.png je třeba vykonat následující posloupnost příkazů.
Titulek okna a rohová ikonaPřidejme někam do našeho programu následující řádky. Máme-li v aktuálním adresáři nějaký obrázek v souboru ikona.png, uvidíme, že kód ovlivní hlavní lištu okna.
Ikonu bychom neměli zapomenout nastavit u žádné aplikace, která půjde k uživatelům, protože taková věc je schopna udělat dobrý dojem. Tlačítko s vlastním obrázkemPokud si nevybereme některé z přednastavených tlačítek a nechceme oklikou vytvářet nové stock tlačítko (protože chceme tlačítko použít jen jednorázově), můžeme vytvořit vlastní. To je podstatně jednodušší a obnáší to pouze vytvoření objektu obrázku a přiřazení ho tlačítku.
Poznamenejme, že pro čistě obrázková tlačítka samozřejmě stačí vynechat textový popisek a použít samotný obrázek. Tlačítko s obrázkem Práce s obrázky - zobrazování, škálování, ořezáváníNejprve se podívejme na úplně nejzákaldnější věc - zobrazíme v okně obrázek ze souboru v aktuálním adresáři. Vytvoříme tedy nejprve objekt $obrazek a ten (jakožto widget) standardně zobrazíme (například přidáme do okna). Zobrazování obrázků je základní funkcí grafické knihovny a proto to ani nemůže být něco náročného na psaní kódu.
Podívejme se ještě, jak z obrázku vytvořit buffer pixelů. Občas se to může hodit, jak uvidíme dále.
Odtud můžeme samozřejmě jít zase zpátky a vytvořit znovu Gtk2::Image.
PixBuf můžeme škálovat. Pro změnu rozměrů obrázku na 500x500 metodou bilinear vyzkoušejme tento příkaz. Další metody škálování jsou v dokumentaci, avšak pro běžné účely vůbec nezáleží na tom, které škálování se provede.
Na závěr vyřízneme z obrázku kousek o velikosti 50x50, jehož horní levý roh má souřadnice 10, 10.
Změna kurzoruJeště neumíme pracovat s událostmi, avšak předběhněme trochu a podívejme se, jak lze měnit kurzorovou ikonu. Signál enter se emituje po najetí myši na daný widget (hned zmiňme, že existuje též signál leave, který vyvolá tentokrát opuštění prostoru kurzorem myši). Zkusme po najetí do prostoru tlačítka změnit kurzor a nastavit ho na nějakou z hodnot typu Gtk2::Gdk::CursorType. Kurzor je objektem typu Gtk2::Gdk::Cursor a podle toho s ním také budeme zacházet. Nejprve ho vytvoříme a poté nastavíme.
Související články
Předchozí Celou kategorii (seriál) Další
Perl (1) - Dávka teorie na úvod
Perl (2) - Úvod do syntaxe Perl (3) - Proměnné Perl (4) - Čísla a řetězce Perl (5) - Podmínky Perl (6) - Pravdivostní výrazy Perl (7) - Vstup poprvé Perl (8) - Některé základní vestavěné funkce Perl (9) - Cykly Perl (10) - Další řídící struktury Perl (11) - Pole - úvod Perl (12) - Pole - základní operace Perl (13) - Hashe Perl (14) - Další nástroje pro seznamy Perl (15) - Výchozí proměnná, heredoc, symbolické odkazy Perl (16) - Regulární výrazy - začínáme Perl (17) - Regulární výrazy - kotvy Perl (18) - Regulární výrazy - množiny znaků Perl (19) - Regulární výrazy - opakování a kvantifikátory Perl (20) - Regulární výrazy - magické závorky Perl (21) - Regulární výrazy - nahrazování Perl (22) - Regulární výrazy - přepínače Perl (23) - Regulární výrazy - rozšířené vzory Perl (24) - Regulární výrazy - příklady Perl (25) - Regulární výrazy - závěr Perl (26) - Podprogramy Perl (27) - Prototypy Perl (28) - Rozsahy platnosti proměnných Perl (29) - Úvod k práci se soubory Perl (30) - Práce se soubory Perl (31) - Testování souborů Perl (32) - Jiné typy souborů Perl (33) - Formátování výstupu - printf Perl (34) - Formátování výstupu - formáty Perl (35) - Vestavěný debugger Perl (36) - Grafické debuggery Perl (37) - Začínáme s moduly Perl (38) - Rozhraní modulu Perl (39) - Pragma Perl (40) - Dodatky k modulům Perl (41) - CPAN Perl (42) - Argumenty příkazového řádku Perl (43) - Přepínače Perl (44) - Dlouhé přepínače Perl (45) - Odkazy Perl (46) - Užití odkazů a anonymní data Perl (47) - Složitější datové struktury Perl (48) - Libovolně složité datové struktury Perl (49) - Tabulky symbolů a typegloby Perl (50) - Uzávěry a iterátory Perl (51) - Signály Perl (52) - Externí příkazy Perl (53) - Režim nakažení Perl (54) - Fork Perl (55) - Eval Perl (56) - Volby příkazu perl Perl (57) - Jednořádkové skripty Perl (58) - OOP - úvod Perl (59) - OOP - typické použití Perl (60) - OOP - dědičnost Perl (61) - OOP - přínos a užití dědičnosti Perl (62) - OOP - přetěžování Perl (63) - OOP - závěr Perl (64) - Projekt - čtečka sportovních výsledků Perl (65) - Projekt - získání dat Perl (66) - Projekt - výběr zápasů a podrobnosti Perl (67) - Projekt - dokončujeme modul Perl (68) - Projekt - zobrazení zápasů Perl (69) - Projekt - online přenos Perl (70) - Plain Old Documentation Perl (71) - Navazování proměnných Perl (72) - Navazování složitějších datových typů Perl (73) - DBM Perl (74) - Sockety Perl (75) - Obsluha více klientů Perl (76) - Síťová hra v kostky Perl (77) - Služby internetu Perl (78) - Databáze - úvod Perl (79) - Databáze - manipulace s daty Perl (80) - Databáze - závěrečné poznámky Perl (81) - CGI - příprava webového serveru Perl (82) - CGI - první skripty Perl (83) - CGI - získávání dat od uživatele Perl (84) - CGI - usnadnění tvorby skriptů pomocí modulu CGI Perl (85) - CGI - generování dokumentu modulem CGI Perl (86) - CGI - cookies Perl (87) - CGI - příklad aplikace Perl (88) - CGI - závěr Perl (89) - Mason - snadné psaní webů Perl (90) - Mason - speciální bloky Perl (91) - Mason - handlery Perl (92) - Mason - závěr Perl (93) - Catalyst - MVC framework pro Perl Perl (94) - Catalyst - základy pro psaní aplikace Perl (95) - Catalyst - šablony Perl (96) - Catalyst - spolupráce s databází Perl (97) - Curses - tvorba textových uživatelských rozhraní Perl (98) - Curses - pozicování a okna Perl (99) - Curses - měření rychlosti psaní Perl (100) - Curses - použití hotových widgetů Perl (101) - Curses - jednoduchý textový editor Perl (102) - Rozšiřování Perlu pomocí XS Perl (103) - Rozšiřování Perlu pomocí SWIG Perl (104) - Testování rychlosti Perl (105) - Testování programových jednotek Perl (106) - Debugování pomocí komentářů Perl (107) - Moose - moderní objektový systém Perl (108) - Moose - základní vlastnosti Perl (109) - Moose - role Perl (110) - Moose - meta API Perl (111) - Pokročilá práce se seznamy Perl (112) - Práce s PDF Perl (113) - Práce s archivy Perl (114) - Tk - úvod Perl (115) - Tk - umísťování widgetů Perl (116) - Tk - základní widgety Perl (117) - Tk - některé pokročilejší widgety Perl (118) - Tk - čas a události Perl (119) - Tk - CD man Perl (120) - Wx - základní práce s widgety Perl (121) - Wx - události Perl (122) - Gtk2 - úvod Perl (124) - Gtk2 - události a čas Perl (125) - Gtk2 - vlastní widgety Perl (126) - Gtk2 - textové okno a práce s pozicemi Perl (127) - Gtk2 - hierarchické seznamy Perl (128) - Gtk2 - dialogy Perl (129) - Gtk2 - skládání widgetů Perl (130) - Gtk2 - menu a toolbary Perl (131) - Gtk2 - transparentní okna, tray ikona, výběr souborů Perl (132) - Gtk2 - drag&drop, druid Perl (133) - Gtk2 - úpravy vzhledu aplikací pomocí rc Perl (134) - Gtk2 - Glade Interface Designer Perl (135) - XML - čtení a zápis Perl (136) - XML - DOM a SAX přístupy Perl (137) - Vlákna Perl (138) - Memoizace - cachování podprogramů Perl (139) - Profilling - efektivní odhalování pomalých míst v programu Perl (140) - Profilling - píšeme si vlastní profiler / debugger Perl (141) - Formátování kódu, deparsování, perltidy Perl (142) - Způsoby konfigurování Perl (143) - Struktura datových typů, správa paměti Perl (144) - POE - událostmi řízené programování Perl (145) - POE - aplikace typu klient-server Perl (146) - Perl 6 - jazyk budoucnosti Perl (147) - Perl 6 - regulární výrazy, nové operátory Perl (148) - Perl Culture Perl (149) - Závěr Pozvánka na Český Perl Workshop Perl 5.22.0 a vše okolo Perl 5.24.0 a vše okolo Předchozí Celou kategorii (seriál) Další
|
Vyhledávání software
Vyhledávání článků
28.11.2018 23:56 /František Kučera 12.11.2018 21:28 /Redakce Linuxsoft.cz 6.11.2018 2:04 /František Kučera 4.10.2018 21:30 /Ondřej Čečák 18.9.2018 23:30 /František Kučera 9.9.2018 14:15 /Redakce Linuxsoft.cz 12.8.2018 16:58 /František Kučera 16.7.2018 1:05 /František Kučera
Poslední diskuze
31.7.2023 14:13 /
Linda Graham 30.11.2022 9:32 /
Kyle McDermott 13.12.2018 10:57 /
Jan Mareš 2.12.2018 23:56 /
František Kučera 5.10.2018 17:12 /
Jakub Kuljovsky | |||
ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze |