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 14:22 | Bezpečnostní upozornění

    Byly zveřejněny informace o kritické zranitelnosti CVE-2026-64600 pojmenované RefluXFS (technické detaily) v XFS. Je tam již od verze Linuxu 4.11, tj. rok 2017. Jedná se o lokální eskalaci práv. Neprivilegovaný uživatel může editovat libovolný soubor, například klidně zrušit rootovské heslo v /etc/passwd. Videoukázka na Vimeo. V upstreamu je zranitelnost opravena.

    Ladislav Hagara | Komentářů: 0
    dnes 13:46 | IT novinky

    OpenAI / ChatGPT má dnes výpadky (OpenAI Status, DownDetector).

    Ladislav Hagara | Komentářů: 0
    dnes 13:00 | Komunita

    Poskytovatel hostingu svobodných/open-source projektů Codeberg po hlasování na valné hromadě vydal stanovisko k využívání LLM. Kvůli vytěžování infrastruktury a rostoucím cenám hardwaru, ale také hrozbám pro spolupráci v komunitě se k LLM staví kriticky. Nebude poskytovat hosting projektů vytvářených LLM agenty.

    |🇵🇸 | Komentářů: 0
    včera 14:22 | Zajímavý projekt

    Jack Dorsey představil (𝕏) open source týmovou komunikační platformu Buzz (GitHub) s cílem snížit závislost na Slacku a GitHubu.

    Ladislav Hagara | Komentářů: 14
    23.7. 23:00 | Nová verze

    Poštovní klient Thunderbird byl vydán v nové verzi 153 s kódovým názvem Meadow. Jedná se o ESR (Extended Support Release) vydání. Přehled novinek v poznámkách k vydání. Vylepšuje OAuth. Thundermail lze používat bez instalace doplňku.

    Ladislav Hagara | Komentářů: 0
    23.7. 22:22 | Zajímavý článek

    AI tento rok naplno vtrhla do vývoje softwaru a výrazně ovlivňuje také open source projekty. Jiří Eischmann v příspěvku Jak mění AI open source na svém blogu rozebírá několik trendů, které v open source v poslední době v souvislosti s AI pozoruje, a jak tyto trendy svět otevřeného softwaru mění (Inflace projektů, Zahlcení kontroly, Klesající motivace zveřejňovat kód).

    Ladislav Hagara | Komentářů: 16
    23.7. 22:00 | IT novinky

    Evropská komise (EK) vyměřila americké internetové společnosti Google pokutu 890 milionů eur (21,5 miliardy Kč) za porušení unijního nařízení o digitálních trzích (DMA). Firma se podle unijní exekutivy provinila tím, že ve vyhledávači Google Search upřednostňovala vlastní služby a že podnikům ukládala omezení, která jim bránila nasměrovat spotřebitele k alternativním, často levnějším nákupním kanálům na platformě Google Play.

    … více »
    Ladislav Hagara | Komentářů: 2
    22.7. 19:44 | IT novinky

    Samsung na akci Galaxy Unpacked July 2026 (YouTube) představil své nové telefony Galaxy Z Fold8 Ultra, Fold8 a Flip8, hodinky Galaxy Watch Ultra2 a Watch9 a chytré brýle ve spolupráci s Gentle Monster a Warby Parker.

    Ladislav Hagara | Komentářů: 0
    22.7. 16:11 | IT novinky

    Po pěti letech vývoje vyšla česká počítačová hra Scarlet Deer Inn (ProtonDB). Scarlet Deer Inn je vyšívaná temná středověká pohádka. Zatímco život ve zdánlivě obyčejné vesnici se točí kolem běžných povinností a sousedských drbů, v podzemí se skrývají zlověstná tajemství.

    Ladislav Hagara | Komentářů: 2
    22.7. 13:33 | IT novinky

    Představen byl Raspberry Pi Touch Display 2 s uhlopříčkou 10 palců a rozlišením 1200 × 1920 pixelů. Cena je 80 dolarů.

    Ladislav Hagara | Komentářů: 11
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (30%)
     (5%)
     (6%)
     (2%)
     (15%)
     (24%)
    Celkem 2221 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Začíname KProgramovať - II

    10. 1. 2003 | Ondrej Krsko | Programování | 10858×

    Přidáváme menu a další ovládací prvky.

    Čo je pod kapotou?

    Opäť začnem kratším pohľadom na architektúru KDE. Projekt KDE je postavený na knižnici Qt (vyslovované ako anglické cute), produktu firmy Trolltech. Je to multiplatformová knižnica napísaná v C++. Vývojárom poskytuje všetku funkcionalitu potrebnú na vývoj aplikácii s grafickým rozhraním. Je plne objektovo orientovaná, ľahko rozširovateľná a poskytuje prostriedky na programovanie s hotovými komponentami.

    Qt beží na všetkých rozšírenejších platformách: Win32, Unix/Linux, Mac OS X.(Ak ste skúšali programovať v Delphi/C++Buildery/Kylixe, asi ste si všimli možnosť vytvárať aplikácie CLX. CLX je iba tenká vrstva nad Qt.) Samotné Qt obsahuje veľa ovládacích prvkov a objektov podobných tým z KDE (napr. QApplication). Ak však existuje náhrada pre KDE, je lepšie použiť tú. Dosiahneme tým štandartný vzhľad aplikácie (napr. na Qt objekty nie súaplikované štýly).

    Na úplnom vrchu diagramu sa nachádza KDE aplikácia. Môže využívať všetky funkcie, ktoré jej KDE, Qt alebo X11 poskytuje. Pár častí si zaslúži vysvetlenie k čomu slúžia. DCOP uľahčuje komunikáciu medzi procesmi. KDECore obsahuje implementáciu tried akou je napríklad KApplication. KDEUI poskytuje možnosti na vytváranie menu, okien, toolbarov... KIO zabezpečuje rovnaký systém práce so súbormi bez toho, aby sme sa museli zaujímať kde sú v skutočnosti umiestnené (lokálny, vzdialený disk). KPrint je novinka z KDE3. Ponúka funkcie súvisiace s tlačou (celkom prekvapivé vzhľadom na názov knižnice:-). KParts je komponentná technológia umožňujúca vkladanie už existujúcich binárnych objektov do aplikácie (obdoba OLE z Win32). Zaujívamou technológiou je aj KSyCoCa (System Configuration Cache). Udržiava často používané nastavenia. Predstavte si, ako náročné môže byť napríklad zobrazenie adresára v Konquerori. Pre každý objekt treba prehľadať konfiguračný súbor a zistiť, akú ikonu zobraziť. Tieto dáta sú udržiavané práve v KSyCoCa, čím sa dosahuje vyššia rýchlosť. Na úvod nám bude stačiť takýto stručný prehľad, veľa vecí si detailnejšie predstavíme priamo na príkladoch.

    Pizza, špagety a celé menu

    Menu je jeden z najdôležitejších ovládacích prvkov hlavného okna aplikácie. Menu by malo vždy sprístupňovať všetky funkcie, okrem tých ktoré sú dostupné vďalších dialógoch. V nasledujúcom príklade vytvoríme jednoduché menu:

    konštruktor triedy KHelloWindow, súbor khello.cpp:

    1. KHelloWindow::KHelloWindow() : KMainWindow()
    2. {
    3.  file = new KPopupMenu();
    4.  file->insertItem("&Hello", this, SLOT(slotHello()));
    5.  file->insertItem("&Koniec", this, SLOT(slotExit()));
    6.  help = new KPopupMenu();
    7.  help->insertItem("&Help!", this, SLOT(slotHelp()));
    8.  menu = menuBar();
    9.  menu->insertItem("&Subor", file);
    10.  menu->insertItem("&Pomoc", help);
    11. }

    Celý program si môžete stiahnuť tu. Po skompilovaní a spustení sa objaví okno s takýmto menu:

    Na riadku číslo 3 vytvorím menu Súbor. Vložíme do neho dve položky: "Hello" a "Koniec". Obidvom položkám nastavíme, aký slot majú používať pri vybraní funkcie z menu. To isté zopakujeme aj pre menu "Pomoc". Na riadku 10 voláme metódu menuBar() zdedenú od triedy KMainWindow. Metóda vráti ukazovateľ na menu. Ak ešte žiadne menu v okne nieje, tak ho vytvorí a odovzdá ukazovateľ na nové menu. Vďaka tomu nemusíte menu priamo vytvárať vy, stačí zavolať menuBar(). Ampersand v menu spôsobí, že nasledujúci znak bude podčiarknutý a bude sa dať použiť ako klávesová skratka (spolu s Altom). Trieda KPopupMenu obsahuje asi 15 rôznych preťažených metód insertItem(). Tie sa líšia parametrami, napríklad na vloženie položky aj s obrázkom (QIconSet, QPixmap), prípadne s klávesovou skratkou (QKeySequence).

    Ďalšie ovládacie prvky

    Nechcem sa obmedziť na suché vymenovávanie ovládacích prvkov z KDE a ich funkcií, preto vyberiem pár používanejších. S ostatnými sa stretnete v ďalších pokračovaniach tohoto seriálu. Zatiaľ len spomeniem, že v KDE je ich naozajveľa a detailnejší popis každého z nich by zabral niekoľko sto kilobajtov. Ako príklad "kompletnosti" uvediem ovládací prvok KSqueezedTextLabel. Ak je text príliš dlhý, tak tento Label zobrazí jeho začiatok a koniec oddelený 3 bodkami. Ak ste programovali napríklad pod Win32, určite oceníte veľa drobností, ktoré KDE ponúka programátorovi.

    V nasledujúcom príklade vytvoríme 3 nové ovládacie prvky. Ten najjednoduchší je QLabel. Možno ho použiť ako:

    • nápis, ktorý chcete zobraziť. Nastavíte jeho veľkosť, umiestnenie na formulária text.
      1. labelEdit = new QLabel(this);
      2. labelEdit->setGeometry(10,30,170,25);
      3. labelEdit->setText("&Enter text:" );
      4. labelEdit->show();
    • návestie k inému ovládaciemu prvku. Viac uvidíte na príklade.

    Ďalším často používaným prvkom je KLineEdit. Je to jednoriadkový textový editor. Ako som už spomínal, KDE uľahčuje programátorom prácu v maximálnej možnej mierea preto si môžete byť istý, že pri jednoduchej editácii možnosti KLineEdit nekončia. Pomocou metódy echoMode() umožňuje zmeniť vypisované znaky napríklad na hviezdičku, čím jednoducho získate ovládací prvok na zadávanie hesla. Ďalšou zaujímavou funkciou je dopĺňanie textu, známe z browserov (po napísaní "www.abc" Vám ponúkne "http://www.abclinuxu.cz"). Medzi štandardné funkcie samozrejme patrí Cut, Copy, Paste, Undo. Často využijete aj KListView. Implementuje zobrazenie zoznamu alebo stromu. Preberá všetky systémové nastavenie ako napríklad DoubleClick/SingleClick nebo ChangeCursorOverLink.

    Spojením týchto 3 nových ovládacích prvkov a použitých v predchádzajúcich príkladoch vytvoríme takýto program:

    Pri pohľade na obrázok je už asi jasné, čo presne bude program robiť. Po stlačení tlačítka "Add" sa pridá do KListView nová položka s textom zadaným v KLineEdit. Najprv vytvoríme všetky potrebné ovládacie prvky:

    konštruktor hlavného okna:

    1. lineEdit = new KLineEdit("",this);
    2. lineEdit->setGeometry(10,55,170,25);
    3. lineEdit->show();

    4. listView = new KListView(this);
    5. listView->setGeometry(10,90,230,180);
    6. listView->addColumn("Items",220);
    7. listView->show();

    Myslím, že tento kód nepotrebuje detailnejšie vysvetlenie. Nová je iba metóda addColumn, ktorá pridáva stĺpec do KListView.

    Obsluha kliknutia na tlačítko "Add":

    1. void KHello::slotAdd() {
    2. QListViewItem *element;
    3. element = new QListViewItem(listView,lineEdit->text());
    4. }

    Na riadku číslo 3 vytvárame novú položku KListView s textom lineEdit->text(). Skúste kliknúť na návestie "Enter text" alebo stlačiť Alt-E. Aktivuje sa KLineEdit (získa focus). Celý program si môžete stiahnuť tu.

    V dalšom pokračovaní sa pozrieme na štandardné dialógové okná a spravíme si jednoduchý prehliadač formátovaného textu.

           

    Hodnocení: 36 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    10.1.2003 15:49 Lukáš Novák
    Rozbalit Rozbalit vše Xwindows theme
    Kde se da stahnout to krasne tema do X?
    10.1.2003 18:54 Ondrej Krsko | skóre: 17
    Rozbalit Rozbalit vše Xwindows theme
    Stiahnut sa daju z www.kde-look.org. Na oboch screenshotoch su pouzite trochu ine: 1. dekoracia okna je Keramik, farby Keramik, styl tiez Keramik 2. dekoracia okna je Keramik, farby Keramik, styl kde_xp Mimochodom, nejedna sa o temu do X. Zda sa mi, ze kde-look ma momentalne nejake problemy s pripojenim, takze ak sa Vam nepodari dostat sa tam dnes, skor ci neskor to pojde. A este nieco: ku Keramiku existuje aj tema Geramik pre Gnome(GTK aplikacie) a tie potom vyzeraju rovnako ako KDE aplikacie (takze viac zapadnu do KDE). (Jedna sa o nieco podobne ako RedHat BlueCurve, teda tema rovnako vyzerajuca pre KDE aj GNOME).
    10.1.2003 19:23 MOJE
    Rozbalit Rozbalit vše Xwindows theme
    to neni tema do X, ale do KDE-3.1 a muzs bud pouzivat kde-3.1 (jeste neni stable, ale hodne brzo bude) a nebo mas smulu. Ikdyz takovy liquid taky nevypada uplne nejhur. Jo a v kde-3.1 je tohle tema prilozene, takze netreba nekde shanet.
    10.1.2003 19:55 Ondrej Krsko | skóre: 17
    Rozbalit Rozbalit vše Xwindows theme
    Ano, v KDE 3.1 je Keramik standartne a dokonca je nastaveny ako defaultny styl. Ja ale pouzivam 3.0.3, kde mozno Keramik pouzivat tiez. Zda sa mi, ze vyzera trosku horsie ako ten z 3.1, ale isty som si nie.
    10.1.2003 20:11 Peter
    Rozbalit Rozbalit vše KDE 3.1
    Ahoj, pridavam este link na screenshoty KDE3.1 spolu s Keramikom: http://static.kdenews.org/mirrors/qwertz/kde31alpha/
    16.1.2003 14:17 Michal Prochazka
    Rozbalit Rozbalit vše Xwindows theme
    Pekne hnusny tema. Vypada to jako vychozi nastaveni XPcek. Mate k hovnu vkus.
    16.1.2003 19:06 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Xwindows theme
    kdezto vy mate nevymachanou pusinku. a krom toho, pokud vam pripomina vych. nastaveni XP, tak mate asi v brylich malo dioptrii.
    13.1.2003 11:15 Zakkr
    Rozbalit Rozbalit vše setGeometry()
    Co nejake "boxovani" tech widgetu, to nastavovani fixnich pozic pomoci setGeometry() mi nepripada moc sexy ;-).
    16.1.2003 17:29 Libor Chocholaty
    Rozbalit Rozbalit vše setGeometry()
    To vis, ze to jde "boxovat". Pouzivaj se na to layouty. Podivej se po QtDesigneru.
    16.1.2003 14:16 Fuck SK
    Rozbalit Rozbalit vše translate
    Hele nemohl by ty clanky nekdo prelozit do cestiny? Cte se to pekne blbe.
    16.1.2003 22:39 Karel B.
    Rozbalit Rozbalit vše translate
    Zalez, smrade.
    26.1.2003 14:53 lopata
    Rozbalit Rozbalit vše dalsi
    kdy vyjde dalsi dil?
    3.2.2003 10:23 netro
    Rozbalit Rozbalit vše Dalsi dil.
    Zajimalo by mne jestli bude nejake pokracovani a nebo nas autor jen tak navnadil.
    Jiří Hubka avatar 4.2.2003 13:03 Jiří Hubka | skóre: 17
    Rozbalit Rozbalit vše Neprobehla kompilace na RH7.3 a 8.0
    Vynikajici serial doufam ze bude hodne dlouhy a stale srozumitelny jako ted. Diky Ale zkousel jsem prelozit nektere priklady ale nepovedlo semi to. Vsechny prikazy probehnou ale na tomto: g++ -L/usr/include/kde/lib -lkdeui -lkdecore -ldl -o khello main.o khello.o Mi to hlasi zhruba toto: /usr/bin/ld: warning: libqt-mt.so.3, needed by /usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libkdeui.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libXext.so.6, needed by /usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libkdeui.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libX11.so.6, needed by /usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libkdeui.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libSM.so.6, needed by /usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libkdeui.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libICE.so.6, needed by /usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libkdeui.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libXrender.so.1, needed by /usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libkdeui.so, not found (try using -rpath or -rpath-link) main.o: In function `main': main.o(.text+0x2b): undefined reference to `QCString::QCString[in-charge](char const*)' Coz je divne protoze ty soubory tam existuji a QTDIR je v poradku. Kde je chyba ? Chci se ucit ale kdyz mi to nejde zkompilovat je radost polovicni :)
    30.1.2004 12:54 koca | skóre: 8 | blog: Zavorky | Brno
    Rozbalit Rozbalit vše cestina (slovenstina) v klistview
    Jak mam zajistit ceske kodovani v sloupcich KListView. Nerozeznava hacky. dekuji koca

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.