Blender Studio se spojilo s kapelou OK Go a výsledkem je videoklip k písni Impulse Purchase. Stejně jako samotný 3D software Blender je i ve videoklipu použitý animovaný chlápek open source. Kdokoli si jej může stáhnout a upravovat.
Zig Software Foundation stojící za programovacím jazykem Zig publikovala finanční zprávu za rok 2024. Současně s prosbou o finanční příspěvek.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za srpen (YouTube). Vypíchnuta je podpora Tabulek Google, implementace Gamepad API a Cookie Store API nebo také podpora WebGL na Linuxu.
openSUSE Leap 16, včetně Leap Micra 6.2+, nově nabízí 24 měsíců podpory pro každé vydání. To je dva roky aktualizací a stability, což z něj činí nejdéle podporovanou komunitní distribuci vůbec. Leap se tak stává ideální platformou pro všechny, kdo hledají moderní, stabilní a dlouhodobě podporovanou komunitní Linux distribuci.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal dne 3. 9. 2025 VAROVÁNÍ před hrozbou v oblasti kybernetické bezpečnosti spočívající v předávání systémových a uživatelských dat do Čínské lidové republiky a ve vzdálené správě technických aktiv vykonávané z území Čínské lidové republiky. Varováním se musí zabývat povinné osoby podle zákona o kybernetické bezpečnosti.
Americká internetová společnost Google nemusí prodat svůj prohlížeč Chrome ani operační systém Android. Rozhodl o tom soud ve Washingtonu, který tak zamítl požadavek amerického ministerstva spravedlnosti. Soud ale firmě nařídil sdílet data s jinými podniky v zájmu posílení konkurence v oblasti internetového vyhledávání. Zároveň Googlu zakázal uzavírat dohody s výrobci mobilních a dalších zařízení, které by znemožňovaly
… více »Prvního září ozbrojení policisté zatkli na na londýnském letišti Heathrow scénáristu a režiséra Grahama Linehana, známého především komediálními seriály Ajťáci, Otec Ted nebo Black Books. Během výslechu měl 57letý Graham nebezpečně zvýšený krevní tlak až na samou hranici mrtvice a proto byl z policejní stanice převezen do nemocnice. Důvodem zatčení bylo údajné podněcování násilí v jeho 'vtipných' příspěvcích na sociální síti
… více »Studentská dílna Macgyver zve na další Virtuální Bastlírnu - pravidelné online setkání všech, kdo mají blízko k bastlení, elektronice, IT, vědě a technice. Letní prázdniny jsou za námi a je čas probrat novinky, které se přes srpen nahromadily. Tentokrát jich je více než 50! Těšit se můžete mimo jiné na:
Hardware – Bus Pirate na ESP32, reverse engineering Raspberry Pi, pseudo-ZX-80 na RISC-V, PicoCalc, organizéry na nářadí z pěny nebo … více »Google Chrome 140 byl prohlášen za stabilní. Nejnovější stabilní verze 140.0.7339.80 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 6 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
LeoCAD (Wikipedie) je svobodná multiplatformní aplikace umožňující také na Linuxu vytvářet virtuální 3D modely z kostek lega. Vydána byla verze 25.09. Zdrojové kódy a AppImage jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.
A komponenty nás budou provázet taky celým článkem – pro začátek naše vlastní (Qt Components se bude podrobněji věnovat minimálně jeden celý díl seriálu) a výrazně nám usnadní tvorbu našich aplikací. Zpřehlední nám zdrojový kód, který by se jinak stal dlouhou nudlí skládající se z kopírování a vkládání kusů kódu. Tím se také tyto části kódu stanou znovupoužitelné pro použití jak v rámci aplikace, tak i dalších následujících projektů. V případě uvolnění pod open source licencí pak mohou posloužit i ostatním vývojářům v naší rozrůstající se komunitě. QML je jako jazyk navíc velmi vhodný k rychlému prototypování návrhu aplikace a následný refaktoring aplikace do komponent se udělá v podstatě skoro sám. Vývojáře tak k němu přímo vybízí a dochází k symbióze návrhu a implementace aplikace.
Komponenty můžeme nadefinovat jak ve vlastním souboru, tak i v rámci již existujícího QML zdrojového kódu. První případ je vlastně klasický QML dokument, který obsahuje vyžadované importy (minimálně QtQuick) a jeden prvek nejvyšší úrovně (často se jedná o element Item představený v předchozí části seriálu) s popisem vlastností a chování komponenty. Soubor s definicí komponenty musí začínat velkým písmenem s příponou .qml. Tímto jménem se pak následně ve zdrojovém kódu aplikace na komponentu odkazujeme. Druhou možností je pak vytvoření nové komponenty právě v rámci jiného QML dokumentu (či komponenty). Pro tento případ máme k dispozici element Component. Hojně se využívá pro oddělení menší části kódu do vlastní komponenty bez nutnosti vytvářet bokem nový soubor a to především pro opakující se prvky. Například jako delegát pro opakovače (repeatery) a ListView element, jak jsme si bez vědomí znalosti komponent ukázali v minulém dílu. Opět především z důvodu přehlednosti zdrojových kódů.
V následujícím příkladu si napíšeme dvě komponenty – čtverec a obdélník a ty následně vytvoříme pomocí elementu Loader do jednoho řádku (element Row), kde se taky zobrazí. Všimněte si, že obě komponenty mají vlastní id a to je taky jediná vlastnost, která jde v rámci elementu Component nejvyšší úrovně nastavit. O Loaderu a dalších možnostech, jak vytvářet komponenty dynamicky, si povíme v jednom z následujících dílů seriálu o pokročilých vlastnostech QML.import QtQuick 1.0 Rectangle { width: 300 height: 100 Component { id: ctverec Rectangle { width: 100; height: 100; color: "blue" } } Component { id: obdelnik Rectangle { width: 200; height: 100; color: "red" } } Row { anchors.fill: parent Loader { sourceComponent: ctverec } Loader { sourceComponent: obdelnik } } }
Využití v rámci delegátu si představíme na závěr článku v rámci naší první malé, ale skutečné aplikace. Jaká to bude, si zatím necháme jako tajemství. Nechte se překvapit!
K tvorbě skutečného uživatelského rozhraní jsou ovšem potřeba přece jenom složitější komponenty než jen výše předvedený čtverec a obdélník. Mají definované rozličné vlastnosti, složitější chování a případně i reagují na akce uživatele. A čisté Qt Quick nechává tuto práci na vývojářích. Protože kromě základních elementů představených v minulém dílu seriálu k jejich obvyklému překvapení neobsahuje žádné elementy/komponenty pro tvorbu uživatelských rozhraní. My si teď ukážeme jak takovou komponentu, která bude vypadat tak, jak jsme si popsali výše, vytvoříme. Tlačítko je jeden z nejzákladnějších prvků uživatelských rozhraní a bude tedy první komponentou, kterou si navrhneme.
Začneme vytvořením nového souboru (v Qt Creatoru buď pomocí menu File -> New File or Project nebo kliknutím pravého tlačítka ve stromové struktuře projektu a výběrem položky Add New, následně vybereme QML a QML File), který pojmenujeme Button.qml. Qt Creator nám pak předgeneruje šablonu, kterou budeme dále rozvíjet.
import QtQuick 1.1 Rectangle { id: container width: 100; height: 40; radius: 5
Pro naše tlačítko použijeme jako výchozí prvek klasický obdélník (Rectangle) a nastavíme si jeho id na container (bude sloužit jako kontejner pro další prvky). Pomocí vlastnosti radius pak naše tlačítko trošku zjemníme a zakulatíme jeho rohy.
property color buttonColor: "red" property alias buttonText: label.text signal clicked
V následující části kódu se dostáváme k první zajímavé a pro naše tlačítko nejdůležitější části. Definici jeho vlastností a signálu jako reakci na stisk tlačítka. Na prvním řádku je klasická definice vlastnosti – pomocí klíčového slova property, následovaného typem vlastnosti a názvem vlastnosti. Za dvojtečkou se nachází výchozí hodnota vlastnosti – v našem případě tedy (pokud neuvedeme jinou barvu) bude tlačítko červené. Druhá vlastnost je takzvaný alias na vlastnost jiného prvku. Místo typu se za klíčovým slovem property objevuje další klíčkové slovo alias a za dvojtečkou se pak nachází odkaz na zástupnou vlastnost jiného prvku. Čtení a zápis na takto zástupné vlastnosti se automaticky projeví na čtení a zápisu v odkazované vlastnosti daného prvku. V našem případě prvku label a jeho vlastnosti text (ten si nadefinujeme později).
Dále nás zajímá definice signálu – v našem případě bez parametrů, které je možné jinak uvést v závorce (každý parametr musí být nějakého typu).
gradient: Gradient { GradientStop { position: 0.0; color: buttonColor } GradientStop { position: 1.0; color: Qt.darker(buttonColor, 2.0) } }
Pro pozadí tlačítka (tedy výplni prvku container) použijeme barevný přechod z barvy určené naší vlastností buttonColor na její tmavší variantu – za použítí vestavěné funkce darker objektu Qt. Pokud by nám stačila jednobarevná výplň, mohli bychom opět na barvu pozadí použít alias vlastnosti.
Text { id: label anchors.centerIn: parent; color: "white" }
A dostáváme se k textu tlačítka, na který jsme si výše připravili alias buttonText. Pro naše účely tedy stačí nastavit id na stejnou hodnotu jako v aliasu (label). Všimněte si, že vůbec nenastavujeme hodnotu vlastnosti text. Ta se nastaví právě přes alias. Pouze vycentrujeme text na střed tlačítka a nastavíme jeho barvu na bílou.
MouseArea { anchors.fill: parent onClicked: container.clicked() } }
Zbývá poslední krok – naučit naše tlačítko naslouchat příkazům uživatele. Opět použijeme již představený element MouseArea, který roztáhneme na celé naše tlačítko (vlastnost anchors.fill). A nadefinujeme reakci na jeho signál onClicked. Tedy signál, který reaguje na stisk tlačítka myši (či dotek na dotykovém zařízení) a jako akci vyšleme náš vlastní signál clicked bez parametrů.
Tímto jsme si vytvořili naše první komponentu – tlačítko. Nezbývá než se potěšit výsledkem a tlačítko použít v aplikaci. První tlačítko bude ve výchozí podobě červené (vizte výchozí vlastnost) a druhému nastavíme vlastnost buttonColor na zelenou barvu a bude tedy zelené. Při kliknutí se do konzole vypíše buď „Ahoj“ nebo „Hi“ v závislosti na stisknutém tlačítku.
import QtQuick 1.1 Row { width: 210; height: 40; spacing: 5 Button { buttonText: "Ahoj"; onClicked: console.log("Ahoj") } Button { buttonText: "Hi"; buttonColor: "Green"; onClicked: console.log("Hi") } }
V následujícím dílu seriálu se podíváme na funkcionalitu, která dělá moderní uživatelské rozhraní (a to někdy k nelibosti některých uživatelů) moderní – na animace. Ty nás pak přivedou ke stavům a přechodům.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Ano, kdyz prestanou na Qt delat, tak bude asi pro komunitu tezke spravovat takovy obri balik, ale...To je v podstate to, co jsem myslel. Obavam se, ze ciste komunitne spravovane Qt bez podpory komercni firmy s placenymi vyvojari na pozadi, urcujici nejaky smer a garantujici predvidatelny rozvoj, bude uplne jiny projekt a rada firem kupujicich licencovanou verzi zacne hledat jinou cestu. Nemyslim, ze Nokia nebude Qt rozvijet, otazka zni jak rychle - tedy kolik do toho investuje - a kam to bude smerovat, pomaly nejisty rozvoj je ta nejhorsi cesta a uprimne pokud vlastnikem bude Nokia s nejasnou motivaci, bude tato otazka stale ve vzduchu. V soucasne dobe bych do noveho produktu postaveneho na Qt jiz nesel, lepsi napsat v cistem C++, platforme zavisle casti izolovat a resit nativne.
V soucasne dobe bych do noveho produktu postaveneho na Qt jiz nesel, lepsi napsat v cistem C++, platforme zavisle casti izolovat a resit nativne.Platforme zavisla cast je v dnesni dobe skoro vsechno, takze dobrou chut
Qt funguje skoro na všech majoritních platformách.To je ono, skoro funguje.
Tak komercni vyvoj dela Digia, necekam, 4.8.1 delali prakticky oni, vcetne release.Vim, mame od nich Qt Commercial SDK, pouzivany na Ångström, tam to budem pouzivat asi dal, ne vsak na desktopu.
Motivace Nokie jsou mobilni aplikaceA postavene na Qt?
Gtk 4 co jsem slysel hodne omezi podporu ne-linux platforem,Gtk4 ? Co se o tom vi?
Postavene na Qt - ano, proc jinak by to Nokia delala. Jinak by cele Qt dala pryc uz davno.Ze setrvacnosti, backup plan? I kdyz vim, ze to interne v Berline pouzivaji.
Nedavno dokonce rikal Lars Knoll (na FOSDEMu), ze je to kvuli footprintu jeste porad malo rozdelene.To chvalim, footprint a nutna velikost flashe byl zatim jeden z hlavnich duvodu proc Qt nepouzit.
Asi nezrusi uplne podporu, jen bude hodne osekana, pripadne bokem.No dobre .... ale zrusit GIMP pro Windows?! ...
Celé jsem to buď nepochopil, nebo furt nemůžu najít tu killer featuru, která dělá z QML něco použitelného...přesně tohle řeším už pekelně dlouho. Navíc mám pocit, že jakmile někde uvedou, že "s tímhle budou skvělě pracovat designéři", tak je to automaticky krok do slepé uličky - vizte např. Zope (DTML vs. TPL), všelijaké PHP templaty, Django templaty... vždycky se s tím serou stejní lidé jako předtím, akorát, že je tam vrstva navíc.
Ono mi to občas přijde celé takové podivné. Tlačí se technologie, která umí v základu zobrazit pár základních tvarů, byť "dobře" konfigurovatelných. Hlavně že to umí částicové efekty. To je fakt potřeba.Nevim no, videl jsi treba QtMediaHub? Pokud si delal nejake podobne UI v C/C++ tak asi vis jaky to je maras, nemluve o tom, jaky maras to je aby to dobre vypadalo a chovalo se to stejne na Win/Linux/OSX. Pomoci QML se da udelat celkem zabijacke UI skoro bez prace a vicemene ciste, temer bez chyb (chyby jsou vetsinou v C/C++ backendu, v UI minimum). Proto QML pouzivam a to UX bytostne nesnasim, konzole-ole! :) Ano, tento tutorial sice ukazuje zakladni kameny a neodkryva naplno moznosti QML, ale to je holt udel tutorialu. Kazdopadne kdo ma predstavivost, tak i z techto zakladu pochopi jak mocny nastroj QML je. Pokud ne, je to ciste jeho problem :)