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 04:44 | Komunita

    Vývojáři svobodného 3D softwaru Blender představili (𝕏, Mastodon, Bluesky) nejnovějšího firemního sponzora Blenderu. Je ním společnost Anthropic stojící za AI Claude a úroveň sponzoringu je Patron, tj. minimálně 240 tisíc eur ročně. Anthropic oznámil sponzorství v tiskové zprávě Claude for Creative Work.

    Ladislav Hagara | Komentářů: 0
    dnes 03:55 | Nová verze

    VNC server wayvnc pro Wayland kompozitory postavené nad wlroots - ne GNOME, KDE nebo Weston - byl vydán ve verzi 0.10.0. Vydána byla také verze 1.0.0 související knihovny neatvnc.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 44. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 15:44 | Zajímavý článek

    David Malcolm se na blogu vývojářů Red Hatu rozepsal o vybraných novinkách v GCC 16, jež by mělo vyjít v nejbližších dnech. Vypíchnuta jsou vylepšení čitelnosti chybových zpráv v C++, aktualizovaný SARIF (Static Analysis Results Interchange Format) výstup a nová volba experimental-html v HTML výstupu.

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | Nová verze

    Byla vydána verze R14.1.6 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    včera 12:55 | Komunita

    Jon Seager z Canonicalu včera na Ubuntu Community Hubu popsal budoucnost AI v Ubuntu. Dnes upřesnil: AI nástroje budou k dispozici jako Snap balíčky, vždy je může uživatel odinstalovat. Ve výchozím nastavení budou všechny AI nástroje používat lokální AI modely.

    Ladislav Hagara | Komentářů: 0
    27.4. 23:11 | IT novinky

    Nový ovladač Steam Controller jde do prodeje 4. května. Cena je 99 eur.

    Ladislav Hagara | Komentářů: 2
    27.4. 14:22 | Komunita

    Greg Kroah-Hartman začal používat AI asistenta pojmenovaného gkh_clanker_t1000. V commitech se objevuje "Assisted-by: gkh_clanker_t1000". Na social.kernel.org publikoval jeho fotografii. Jedná se o Framework Desktop s AMD Ryzen AI Max a lokální LLM.

    Ladislav Hagara | Komentářů: 8
    27.4. 04:44 | Komunita

    Ubuntu 26.10 bude Stonking Stingray (úžasný rejnok).

    Ladislav Hagara | Komentářů: 2
    26.4. 22:22 | Nová verze

    Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.3.0. S experimentální podporou FLTK 1.4. S příkazem dilloc pro ovládání prohlížeče z příkazové řádky. Vývoj prohlížeče se přesunul z GitHubu na vlastní doménu dillo-browser.org (Git).

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (2%)
     (13%)
     (31%)
     (4%)
     (7%)
     (3%)
     (15%)
     (25%)
    Celkem 1449 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Začíname KProgramovať - III

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

    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.