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 18:22 | IT novinky

    Ústavní soud na svých webových stránkách i v databázi NALUS (NÁLezy a USnesení Ústavního soudu) přestavil novou verzi chatbota využívajícího umělou inteligenci. Jeho posláním je usnadnit veřejnosti orientaci v rozsáhlé judikatuře Ústavního soudu a pomoci jí s vyhledáváním informací i na webových stránkách soudu, a to i v jiných jazycích. Jde o první nasazení umělé inteligence v rámci webových stránek a databází judikatury českých soudů.

    Ladislav Hagara | Komentářů: 1
    dnes 13:00 | Nová verze

    Byla vydána nová verze 10.1 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íchnuta je podpora NanoPi Zero2 a balíček WhoDB.

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Komunita

    Konference Otvorený softvér vo vzdelávaní, výskume a v IT riešeniach OSSConf 2026 proběhne od 1. do 3. července 2026 na Žilinské univerzita v Žilině: "Cieľom našej konferencie je poskytnúť priestor pre informovanie o novinkách vo vývoji otvoreného softvéru a otvorených technológií, o možnostiach využitia týchto nástrojov vo vede a vzdelávaní a taktiež poskytnúť priestor pre neformálne priateľské stretnutie užívateľov a priaznivcov

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Pozvánky

    Korespondenční seminář z programování (KSP) pražského Matfyzu pořádá i letos jarní soustředění pro začátečníky. Zváni jsou všichni středoškoláci a starší základoškoláci, kteří se chtějí naučit programovat, lépe uvažovat o informatických úlohách a poznat nové podobně smýšlející kamarády. Úplným začátečníkům bude určen kurz základů programování a kurz základních algoritmických dovedností, pokročilejším nabídneme různorodé

    … více »
    skywalqer | Komentářů: 0
    včera 04:11 | Komunita

    Fedora je od 10. února dostupná v Sýrii. Sýrie vypadla ze seznamu embargovaných zemí a Fedora Infrastructure Team mohl odblokovat syrské IP adresy.

    Ladislav Hagara | Komentářů: 21
    včera 03:44 | Zajímavý projekt

    Ministerstvo zahraničí Spojených států amerických vyvíjí online portál Freedom.gov, který umožní nejenom uživatelům v Evropě přístup k obsahu blokovanému jejich vládami. Portál bude patrně obsahovat VPN funkci maskující uživatelský provoz tak, aby se jevil jako pocházející z USA. Projekt měl být původně představen již na letošní Mnichovské bezpečnostní konferenci, ale jeho spuštění bylo odloženo.

    NUKE GAZA! 🎆 | Komentářů: 25
    včera 03:33 | Komunita

    Byla vydána pro lidi zdarma ke stažení kniha The Book of Remind věnovaná sofistikovanému kalendáři a připomínači Remind.

    Ladislav Hagara | Komentářů: 1
    21.2. 23:55 | Nová verze

    Grafický editor dokumentů LyX, založený na TeXu, byl vydán ve verzi 2.5.0. Oznámení připomíná 30. výročí vzniku projektu. Novinky zahrnují mj. vylepšení referencí nebo použití barev napříč aplikací, od rozhraní editoru po výstupní dokument.

    |🇵🇸 | Komentářů: 0
    21.2. 15:00 | Komunita

    F-Droid bannerem na svých stránkách a také v aplikacích F-Droid a F-Droid Basic upozorňuje na iniciativu Keep Android Open. Od září 2026 bude Android vyžadovat, aby všechny aplikace byly registrovány ověřenými vývojáři, aby mohly být nainstalovány na certifikovaných zařízeních Android. To ohrožuje alternativní obchody s aplikacemi jako F-Droid a možnost instalace aplikací mimo oficiální obchod (sideloading).

    Ladislav Hagara | Komentářů: 28
    20.2. 16:33 | Nová verze

    Svobodná historická realtimová strategie 0 A.D. (Wikipedie) byla vydána ve verzi 28 (0.28.0). Její kódový název je Boiorix. Představení novinek v poznámkách k vydání. Ke stažení také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (6%)
     (0%)
     (11%)
     (27%)
     (2%)
     (5%)
     (1%)
     (12%)
     (26%)
    Celkem 941 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Začíname KProgramovať - III

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

    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áknoNahoru

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