V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.
Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.
Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.
Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Byla vydána verze R14.1.7 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.
Bazzite (Wikipedie), tj. linuxová distribuce vycházející z Fedora Linuxu a optimalizována pro hraní počítačových her, byla vydána ve verzi 45. S Open Gaming Collective (OGC) jádrem a novým Easy Anti-Cheatem pro Linux (EAC Linux v2).
MikroTik zveřejnil vlastní bezpečnostní upozornění potvrzující, že zranitelnost linuxového jádra postihuje také RouterOS 7. Jde o use-after-free při zpracování IPv4 TCP spojení s IP options. Zranitelnost se týká provozu směřujícího na TCP službu samotného routeru, nikoli paketů, které router pouze přeposílá. Opraveno v long-term od 7.24.6, v stable od 7.25.1 a devel od 7.26beta5.
Ahoj!
Pred par dny jsem zacal delat na takove mensi aplikaci, pro vyvoj jsem si vybral C++ a Qt, i kdyz ani s jednim nemam prakticky zadne zkusenosti. S C++ to docela jde, prechod z C# a Javy neni tak hrozny, clovek spis citi prijemnou volnost -)
Ted k problemu, na zacatku programu potrebuju nacist nejaka data skrz gui a pri behu je pripadne lehce editovat, precetl jsem si nejake tutorialy na model / view pattern a implementoval celkem snadno editovani dat pres model a tableView.
Co se mi ale nedari je vkladat a mazat radky z tableView pres gui, zatim jsem to ale pomoci nejakych signalu tlacitek a slotu v modelu celkem dobre obesel. Jako dalsi variantu vidim upraveni tableView a odchytavani nejakych eventu, radsi bych vsak volil nejakou "konfiguracni" cestu, jde to nejak? Ciste subjektivne, je lepsi pouzivat tlacitka se signaly nebo poupravit tableView? Nebo jsem jen v modelu zapomnel implementovat nejakou fci, ktera to umozni?
Pak by me zajimalo, jak mohu z modelu (nebo z delagatu, k tomu se vratim) upravit vzhled samotne tableView, vim ze pres fci data(...) muzu neco vracet na dotaz Qt::SizeHintRole, ale s tim nemam zadne uspechy. Rad bych totiz, aby se sloupecky (treba podle nejakeho pomeru) roztahly po tableView do 100% sirky (viz priloha) a jeste bych chtel nejakym zpusobem upravit vysku radku.
A na zaver bych se rad zeptal, k cemu je v model / view patternu dobry delegate? S cim mi muze pomoci?
Za kazdou radu nebo tip budu moc vdecny, diky.
Tak se mi to po dalsim usilovnem patrani a zkouseni podarilo vyresit.
Misto QTableView pro zobrazeni pouzivam vlastnim tridu dedici prave QTableView.
Pro pridavani a mazani zaznamu jsem si overridnul funkci keyPressEvent (..) a podle zrovna oznacenych radku posilam pozadavky primo do modelu, kde jsem implementoval funkce insertRows(..) a removeRows(..).
Pro upravu layoutu jsem nejdriv implementoval funkci data(..) v modelu tak, aby pri volani, kdy role == Qt::SizeHintRole, vracela percentualni velikost jednotlivych sloupecku. A funkci resizeEvent(..) v mem QTableView jsem implementoval takto:
(misto Qt::SizeHintRole by samozrejme sla pouzit jakakoliv jina Qtckem nepouzita hodnota, ale nezaznamenal jsem, ze by QTableView funkci data(..) s arg. role == Qt::SizeHintRole nekdy volal)
{
int count = model()->columnCount();
int total = 0;
//rozdelim podle pomeru z hintu
for (int i = 0; i < count - 1; i++)
{
const QModelIndex index = model()->index(0, i);
QVariant hint = model()->data(index, Qt::SizeHintRole);
int size = (width() / 100) * hint.toInt();
horizontalHeader()->resizeSection(i, size);
total = total + size;
}
//posledni sloupec dostane zbytek mista + rezervu kvuli scrollu
horizontalHeader()->resizeSection(count - 1, width() - total - 20);
}
Treba nekomu pomuze...
Tiskni
Sdílej: