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 12:44 | Upozornění

    Část údajů uživatelů internetového supermarketu Rohlík byla odcizena. Kyberútočníci napadli nástroj zákaznické podpory Rohlíku, odcizili tak jména, e-mailové adresy, v některých případech také telefonní čísla nebo přepisy komunikace mezi klienty a zákaznickou podporou. Rohlík incident nahlásil příslušným orgánům a přijal příslušné opatření, aby zamezil podobným případům v budoucnosti, uvedla firma.

    Ladislav Hagara | Komentářů: 3
    dnes 11:11 | IT novinky

    Aplikace eDoklady fungovala v obou volebních dnech stabilně a prakticky bez front. Digitální a informační agentura (DIA) odhaduje, že se digitálním dokladem prokázalo více než 100.000 voličů. Aplikaci si před volbami či během nich aktualizovalo 247.517 uživatelů. Nových registrací bylo 19.431 a do aplikace se přihlásilo 357.879 lidí. Největší nápor přišel bezprostředně po otevření volebních místností mezi 14. a 16. hodinou, kdy si

    … více »
    Ladislav Hagara | Komentářů: 4
    dnes 00:55 | Pozvánky

    Začal semestr, začal i podzim a kromě hub rostou jako po dešti i veřejné dílny v Praze. Nedávno strahováci referovali o hackerspacu Bordel, nyní se otevřela dílna Dejvice Lab jen kousek od ČVUT. Na blížící Virtuální Bastlírně tak uslyšíte nejen report z návštěvy dílny HWLab, ale i řadu novinek, událostí a úsměvných momentů, které se za poslední měsíc ve světě techniky, ale i vědy udály. Připojte se tedy již v úterý 13.10. od 20:00 a zapojte se do

    … více »
    bkralik | Komentářů: 0
    včera 11:33 | Nová verze

    Byl vydán LineageOS 24 (Mastodon). LineageOS (Wikipedie) je svobodný operační systém pro chytré telefony, tablety a set-top boxy založený na Androidu. Jedná se o nástupce CyanogenModu. LineageOS 24 je založený na Androidu 17.

    Ladislav Hagara | Komentářů: 0
    včera 03:55 | IT novinky

    Společnost Valve publikovala na svém GitLabu nákresy a schémata zapojení headsetu Steam Frame. Pro nekomerční účely.

    Ladislav Hagara | Komentářů: 1
    10.10. 23:11 | Bezpečnostní upozornění

    Soutěž Pwn2Own Ireland 2026 skončila 9. října. Bezpečnostní výzkumníci získali celkem 1 262 000 dolarů na odměnách. Během soutěže bylo předvedeno zneužití 98 zero-day zranitelností. Testování zahrnovalo různé kategorie zařízení a software. Výzkumníci předváděli prakticky fungující útoky podle pravidel soutěže. Výsledky následně slouží výrobcům při přípravě oprav. Mezi pokořenými jsou: Samsung Galaxy S26, OpenAI Codex, Oracle Autonomous AI Database, Google Pixel 10, u iPhone 17 neuspěli.

    vencour | Komentářů: 1
    9.10. 22:44 | Nová verze

    Programovací jazyk Python byl vydán v nové verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 20
    9.10. 22:33 | Zajímavý projekt

    BIGWORDS.PAGE je open-source webová aplikace, která po otevření odkazu v prohlížeči vykreslí přes celou obrazovku jednoduché informační sdělení. Zpráva i její nastavení jsou uložené v části URL za znakem #, například odkaz https://bigwords.page/#abclinuxu zobrazí jako velký bílý nápis 'abclinuxu' na černém pozadí. Obsah odkazu lze upravovat i vestavěným editorem, ten umožňuje nastavovat formátování a vizuální efekty textu, časovače, QR kódy a obrázky. Zdrojový kód je dostupný pod licencí MIT na GitHubu.

    ❗Červivý Hřib krade❗ | Komentářů: 10
    9.10. 11:55 | Upozornění

    V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."

    Ladislav Hagara | Komentářů: 15
    9.10. 09:55 | IT novinky

    Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.

    Ladislav Hagara | Komentářů: 15
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (6%)
     (2%)
     (14%)
     (20%)
    Celkem 2835 hlasů
     Komentářů: 32, poslední včera 17:02
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Začíname KProgramovať - III

    7. 2. 2003 | Ondrej Krsko | Programování | 8915×

    Další ovládací prvky a dialogová okna. Layout Management. AbcZilla.

    Layout Management

    Dnes budem pokračovať v predstavovaní ovládacích prvkov a takisto sa pozrieme na štandartné dialógové okná. Spomeniem napríklad KFileDialog. Začnem ale opäť dlhším teoretickým úvodom - popíšem správcov rozloženia ovládacích prvkov (Layout Management).

    Doteraz sme pri programovaní sami určovali rozloženie ovládacích prvkov a ich veľkosť. Vytváranie formulárov týmto spôsobom ale vedie k viacerým problémom:

  • internacionálizacia programov: Tento proces som ešte nespomínal, ale dostanem sa k nemu v niektorom z ďalších dielov. Stručne prezradím, že KDE umožňuje veľmi ľahko vytvoriť rôzne jazykové mutácie programu. Preto sa zadávaním pevnej veľkosti prvku môže stať, že nie celý text sa "vmestí" do zadaného priestoru.
  • fonty: Podobný problém môžu spôsobiť aj rôzne fonty.
  • problematické zadávanie súradníc: Hodiť na formulár dva prvky ako v príklade z minulej časti nie je naozaj ťažké. Pri väčších formulároch to už nemusí byť veľmi zábavné.
  • zmena veľkosti: Ak užívateľ zmení veľkosť okna, prvky sa neprispôsobia a dostanú sa napríklad za hranice okna. Možete zakázať meniť veľkosť okna, nie vždy s tým ale bude spokojný aj užívateľ.
  • štýly: KDE umožňuje meniť vzhľad aplikácii. Prvky môžu vyzerať úplne inak v porovnaní s tým, ako predpokladáte vy.
  • Aká existuje alternatíva? Knižnica Qt poskytuje pokročilý layout systém. Nebudem ho popisovať do detailov, pretože neskôr začneme používať Qt Designer na návrh dialógov. Aj tu treba ale vedieť, že niečo ako layout management existuje. Takže, poďme sa pozrieť ako na to.

    Aj takto môže vyzerať program z predchádzajúceho dielu:

    AbcLinuxu.cz Browser

    Aj vy radi navštevujete AbcLinuxu? Spravíme si vlastný browser, ktorý bude po spustení otvárať stránku abclinuxu.cz. Nepôjde o akýsi hlúpy prehliadač, ktorý okrem tagu body a head nič iné nepozná. Využijeme prvok KHTMLPart, ktorý je použitý napríklad v prehliadači Konqueror (kvôli tomuto prehliadaču bol vlastne vytvorený).

    Výsledný program bude vyzerať takto:

    Ako ste si určite všimli, program sa skladá z:

    • menu (KMenu)
    • navigačné tlačítka (QPushButton)
    • adresa (KLineEdit)
    • prehliadač (KHTMLPart)

    Menu, tlačítka a textový riadok už vytvoriť vieme. Nový je len KHTMLPart. Pozostáva z dvoch častí. Jedna slúži na udržiavanie spracovaných dát HTML dokumentu (DOM) a z KHTMLView. KHTMLView je potomok triedy QScrollView, ktorý implementuje renderovanie HTML. Pozrime sa teda na konštruktor hlavného okna (nie je to kompletný výpis, vybral som len najzaujímavejšie časti:-).

    1. ...
    2. QVBox * vbox = new QVBox ( this );
    3. QHBox * hbox = new QHBox ( vbox );
    4.  
    5. btnNav1 = new QPushButton (i18n("AbcLinuxu"), hbox );
    6. btnNav2 = new QPushButton (i18n("AbcPalírna"), hbox );
    7. btnNav3 = new QPushButton (i18n("Hardware"), hbox );
    8.  
    9. location = new KLineEdit ( vbox );
    10. location->setText( "http://www.abclinuxu.cz/" );
    11.  
    12. browser=new KHTMLPart( vbox );
    13. browser->setJavaEnabled(true);
    14. browser->setJScriptEnabled(true);
    15. browser->openURL( location->text() );
    16.  
    17. setCentralWidget( vbox );

    Na riadku číslo 2 a 3 vytváram dvoch správcov rozloženia. Ich rozloženie bude takéto:

    Ako hlavný správca je použitý QVBox. Ten ukladá všetky svoje prvky vertikálne (postupne pod seba). Ich veľkosti prispôsobuje podľa metódy QWidget:: sizeHint(), ktorá udržiava informácie o "odporúčaných" veľkostiach pre prvok. Ďalší použitý správca je QHBox, ktorý vytváram na riadku 3. Ten funguje podobne ako QVBox, ale ukladá prvky horizontálne (vedľa seba). Ako jeho rodiča uvádzam už vytvorený QVBox.

    Na riadku 5, 6 a 7 vytvorím tri tlačítka, ktoré sú vložené do QHBoxu. Určite ste si všimli, že nikde nie je zadaná ich veľkosť. O tú sa postará automaticky správca rozloženia. Ďalej vložím pod QHBox ovládací prvok KLineEdit a KHTMLPart. Po vytvorení povolím JavaScript a Javu (tie sú štandartne zakázané, šikovnejšie by bolo asi prečítať nastavenia Konqueroru).

    Ďalej musíme vytvoriť ešte obsluhu kliknutia na tlačítka, stlačenia klávesu enter v KLineEdite a pridať obsluhu signálu openURLRequest. Ten je vyvolaný pri zmene URL v KHTMLPart (napríklad po kliknutí na odkaz, presmerovaní, atď). Spracovanie kliknutia je jednoduché, stačí nasmerovať prehliadač na definovanú adresu, napríklad pomocou metódy openURL().

    Štandartné dialógové okná

    Štandartné dialógové okná sú už predpripravené dialógy. Vďaka nim docielime štandartný vzhľad aplikácie (bolo by zvláštne, keby každá aplikácia používala iný dialóg na výber súboru). KDE ponúka pomerne veľa takýchto dialógov, pozrieme sa na niektoré z nich:

    • KFileDialog je asi najčastejšie používaný. Slúži na výber súboru. Jedná sa o pomerne prepracovaný dialóg (aspon v KDE 3.x). Obsahuje zoznam často používaných adresárov, dokáže filtrovať zoznam súborov, ponúka možnosť náhľadu (resp. automatického náhľadu) na súbor ešte pred jeho vybratím.
    • KDirSelectDialog slúži na výber adresára. Zobrazuje štruktúru súborového systému v prehľadnom strome.
    • KIconDialog ponúka zoznam systémových ikon (zatriedených do viacerých kategórií) alebo možno vybrať ikonu priamo z disku.

    Ďalšie dialógy nájdete v KDE dokumentácii. V ukážkovom programe som do menu súbor pridal 3 položky, každá zodpovedá jednému dialógovému oknu. Obsluha kliknutia na tieto položky je jednoduchá:

    1. void KHello::fileFileDialog() {
    2.  KURL filename = KFileDialog: :getOpenURL( QString::null, "*", this );
    3.  KMessageBox: :information( 0, filename.url(), i18n ( "Information" ), "fileOpenInformationDialog" );
    4. }
    5.  
    6. void KHello::fileDirSel() {
    7.   KURL dirname = KDirSelectDialog::selectDirectory( );
    8.  KMessageBox::information ( 0, dirname.url(), i18n( "Information" ), "fileOpenInformationDialog" );
    9. }
    10.  
    11. void KHello::fileIconDialog() {
    12.   QString iconname = KIconDialog::getIcon( );
    13.  KMessageBox::information ( 0, iconname, i18n( "Information" ), "fileOpenInformationDialog" );
    14. }

    Ako vidíte, použitie dialógov nie je nič zložité. Netreba vytvárať žiadne objekty, stačí zavolať statickú metódu slúžiacu na zobrazenie dialógu (napríklad KFileDialog::getOpenURL). KFileDialog a KDirSelectDialog vracajú ako parameter URL (v minulej časti som spomínal KIO, ktoré zabezpečuje rovnakú prácu so súbormi bez ohľadu na to, kde sa nachádzajú). KIconDialog má ako návratovú hodnotu QString. Celý program si môžete stiahnuť tu.

    Nabudúce...

    Nabudúce začneme používať pohodlnejšie nástroje na vývoj programov pre KDE. Ako hlavné vývojové prostredie som si vybral KDevelop. Nová verzia 3.0 je na "spadnutie", zatiaľ si ale vystačíme s verziami 2.x.x. Ak ešte nemáte KDevelop nainštalovaný, choďte na domácu stránku projektu www.kdevelop.org.

    Okrem KDevelopu budeme potrebovať Qt Designer na návrh užívateľského rozhrania. Ak ho nemáte, pozrite sa na stránku www.trolltech.com. Qt Designer aj KDevelop sú ale súčasťou väčšiny distribúcií, takže by ste ich mali mať už nainštalované. Určite sa máte na čo tešiť, tieto nástroje vám uľahčia veľa práce (dúfam, že sa do mňa nepustia žiadny zástancovia ručného kódovanie užívateľského rozhrania, ktorý si myslia, že tieto nástroje sú len pre nováčikov, ktorý si nechcú špiniť ruky v textovom editore:-).

    Takže si pripravte tieto dva nástroje, budete ich čoskoro potrebovať!

           

    Hodnocení: 37 %

            š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ář

    7.2.2003 10:54 andrej
    Rozbalit Rozbalit vše KDE 3.1
    Ahoj, bude tento serial aj o programovani pre KDE 3.1 ??? Dakuje Andre
    10.2.2003 01:40 Ondrej Krsko | skóre: 17
    Rozbalit Rozbalit vše KDE 3.1
    Ahoj. KDE3.1 by sa nemalo moc lysit od KDE3.0.x. Ak by som nasiel nejaku vec, ktora sa zmenila, tak v seriali na to upozornim.
    10.2.2003 14:43 L.Lunak
    Rozbalit Rozbalit vše KDE 3.1
    KDE 3.1 je zpetne kompatibilni s KDE3.0, takze jedina vec, ktera se muze "zmenit", je pridani novych veci.
    17.7.2006 22:01 Euroska
    Rozbalit Rozbalit vše Re: Začíname KProgramovať - III
    Zdravim... Chtel sem se neco naucit o QT, ale ztroskotal jsem na KHTML_Part... Prvni sem si myslel, ze sem neco jen spatne opsal/zkopci, ale na http://developer.kde.org/ je to stejne...

    Nechce se prekousat pres radek
    browser=new KHTMLPart( vbox );
    a reaguje na to:
    /home/Programovani/khello/src/khello.cpp:45: undefined reference to `KHTMLPart::KHTMLPart(QWidget*, char const*, QObject*, char const*, KHTMLPart::GUIProfile)'
    
    Zdrojaky jsou stejne, jako v priklade...Pozivam KDevelop.. Kdyby nekdo tusil, cim to muze byt, byl bych mu moc vdecny :)
    9.11.2006 18:59 Euroska
    Rozbalit Rozbalit vše Re: Začíname KProgramovať - III
    Takze chybela nactena knihovna -lkhtml.. Sry za blby dotaz.

    Založit nové vlákno • Nahoru

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