Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.
OpenChaos.dev je 'samovolně se vyvíjející open source projekt' s nedefinovaným cílem. Každý týden mohou lidé hlasovat o návrzích (pull requestech), přičemž vítězný návrh se integruje do kódu projektu (repozitář na GitHubu). Hlasováním je možné změnit téměř vše, včetně tohoto pravidla. Hlasování končí vždy v neděli v 9:00 UTC.
Byl vydán Debian 13.3, tj. třetí opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.13, tj. třináctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Na stránkách Evropské komise, na portálu Podělte se o svůj názor, se lze do 3. února podělit o názor k iniciativě Evropské otevřené digitální ekosystémy řešící přístup EU k otevřenému softwaru.
Společnost Kagi stojící za stejnojmenným placeným vyhledávačem vydala (𝕏) alfa verzi linuxové verze (flatpak) svého proprietárního webového prohlížeče Orion.
Firma Bose se po tlaku uživatelů rozhodla, že otevře API svých chytrých reproduktorů SoundTouch, což umožní pokračovat v jejich používání i po plánovaném ukončení podpory v letošním roce. Pro ovládání také bude stále možné využívat oficiální aplikaci, ale už pouze lokálně bez cloudových služeb. Dokumentace API dostupná zde (soubor PDF).
Jiří Eischmann se v příspěvku na svém blogu rozepsal o open source AdGuard Home jako domácí ochraně nejen před reklamou. Adguard Home není plnohodnotným DNS resolverem, funguje jako DNS forwarder s možností filtrování. To znamená, že když přijme DNS dotaz, sám na něj neodpoví, ale přepošle ho na vybraný DNS server a odpovědi zpracovává a filtruje dle nastavených pravidel a následně posílá zpět klientům. Dá se tedy používat k blokování reklamy a škodlivých stránek a k rodičovské kontrole na úrovni DNS.
AI Claude Code od Anthropicu lépe rozumí frameworku Nette, tj. open source frameworku pro tvorbu webových aplikací v PHP. David Grudl napsal plugin Nette pro Claude Code.
Byla vydána prosincová aktualizace aneb nová verze 1.108 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.108 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Na lasvegaském veletrhu elektroniky CES byl předveden prototyp notebooku chlazeného pomocí plazmových aktuátorů (DBD). Ačkoliv se nejedná o první nápad svého druhu, nepochybně to je první ukázka praktického použití tohoto způsobu chlazení v běžné elektronice. Co činí plazmové chladící akční členy technologickou výzvou je především vysoká produkce jedovatého ozonu, tu se prý podařilo firmě YPlasma zredukovat dielektrickou
… více »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:
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:

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, 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
.
...QVBox * vbox = new QVBox ( this );QHBox * hbox = new QHBox ( vbox );btnNav1 = new QPushButton (i18n("AbcLinuxu"), hbox );btnNav2 = new QPushButton (i18n("AbcPalírna"), hbox );
btnNav3 = new QPushButton (i18n("Hardware"), hbox );location = new KLineEdit ( vbox );location->setText( "http://www.abclinuxu.cz/" );browser=new KHTMLPart( vbox );browser->setJavaEnabled(true);browser->setJScriptEnabled(true);browser->openURL( location->text() );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á 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á:
void KHello::fileFileDialog() {KURL filename = KFileDialog:
:getOpenURL( QString::null, "*", this );KMessageBox:
:information( 0, filename.url(), i18n
( "Information" ), "fileOpenInformationDialog" );}void KHello::fileDirSel() {KURL dirname = KDirSelectDialog::selectDirectory( );KMessageBox::information
( 0, dirname.url(), i18n( "Information" ), "fileOpenInformationDialog" );
}void KHello::fileIconDialog() {QString iconname = KIconDialog::getIcon( );KMessageBox::information
( 0, iconname, i18n( "Information" ), "fileOpenInformationDialog" );
}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 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ť!
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
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 :)