The Document Foundation oznámila vydání nové major verze 25.8 svobodného kancelářského balíku LibreOffice. Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání (cs) a také na Youtube a PeerTube.
Zeek (Wikipedie), původně Bro, byl vydán v nové major verzi 8.0.0. Jedná se o open source platformu pro analýzu síťového provozu. Vyzkoušet lze online.
Byl vydán Mozilla Firefox 142.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 142 je již k dispozici také na Flathubu a Snapcraftu.
Python Developers Survey 2024, výsledky průzkumu mezi vývojáři v Pythonu organizovaném Python Software Foundation ve spolupráci se společností JetBrains v říjnu a listopadu loňského roku. Zúčastnilo se 30 tisíc vývojářů z 200 zemí. Linux používá 59 % z nich.
Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
Byla vydána nová verze 2.51.0 distribuovaného systému správy verzí Git. Přispělo 91 vývojářů, z toho 21 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Po roce bylo vydáno nové číslo magazínu Phrack: Phrack 72.
OpenSSL Corporation zve na den otevřených dveří ve středu 20. srpna v Brně a konferenci OpenSSL od 7. do 9. října v Praze.
Konference LinuxDays 2025 proběhne o víkendu 4. a 5. října v Praze. Konference OpenAlt 2025 o víkendu 1. a 2. listopadu v Brně. Blíží se konec přihlašování přednášek. Přihlaste svou přednášku (LinuxDays do 31. srpna a OpenAlt do 3. října) nebo doporučte konference známým.
Zdravím,
Mám v podstatě dvě otázky:
1) Dynamická změna velikosti okna podle velikosti hlavního widgetu. Chci vyrobit okno, ve kterém bude tabulka nějakých objektů a chci, aby se velikost okna přizpůsobila velikosti tabulky (pokud se vejde na obrazovku). Tabulka může být pokaždé jinak veliká, takže nemůžu použít fixní velikost.
Skládá se to z QMainWindow (hlavní okno), ve kterém je QScrollArea a v ní můj vlastní widget Tabulka (QGridLayout s dalšími widgety).
Zkoušel jsem tohle, ale okno se vyrobí stejně velké jako když jsem velikost nijak nenastavoval.
QMainWindow window; QScrollArea * scroll = new QScrollArea; Table * table = new Table; table->generateTable(); scroll->setWidget(table); window.setCentralWidget(scroll); window.resize(scroll->sizeHint());
Tabulka se za běhu může zvětšovat/zmenšovat. Bude se okno dynamicky zvětšovat samo od sebe nebo ho musím po každé změně překreslit ručně? Napadá mě předefinovat resizeEvent tabulky, který zavolá resizeEvent okna, ale přijde celkem komplikované.
2) Maximalizace okna jen na velikost widgetu
Tohle by mělo jít pomocí setMaximumSize(), ale jak zjistím velikost tabulky, když nic z tohohle nevrací rozumnou velikost?
scroll->size(); scroll->sizeHint(); //pripadne scroll->viewport()->size(); scroll->viewport()->sizeHint();
Ale pokaždé, když si néjaký program jen tak mění velikost okna, tak mě to děsně štve.Přesně tak. Pokud máš dobrý důvod něco takového dělat, nastav rozumný horní limit za který se okno už samo zvětšovat nebude.
Problém tam dělá ta QScrollArea. Zkus resizovat na velikost toho, co je uvnitř (table).Ale jak? Když to zkusím takhle,
scroll->setWidget(table); scroll->resize(table->size());nic se nezmění. Možná, že table->size() vrací divnou velikost, ale to se mi nezdá, protože samotná tabulka (jako hlavní widget) se vykreslí tak velká jak je potřeba, případně „vyteče“ ven, když se nevejde na obrazovku.
Aktualizace:
1) Teď jsem zkusil resizovat okno až těsně před tím než ho zobrazím a funguje to. Možná pomohlo resizovat na velikost widgetu samotného a ne na velikost widgetu v nějakém kontejneru. Akorát se nezobrazí celé, oříznuté o pár pixelů napravo a dole, takže se objeví oba ScrollBary. Viz příloha.
2) Okno se sice nedá zvětšit nad určitou velikost ručně (myší),
window->resize(table->size())ale tlačítko Maximize ignoruje maximální velikost widgetu. Jak tohle obejít?
const int fill = 4; // spravna velikost okna window.resize(table->width() + fill,table->height() + fill); window.setMaximumSize(table->width() + fill, table->height() + fill); // spatna velikost okna QSize size; size = table->size(); size.rwidth() += fill; size.rheight() += fill; window.resize(size); window.setMaximumSize(size);Samozřejmě použiju to co funguje, ale zajímalo by mě proč se to takhle chová.
Ad 2: Mea culpa, napsal jsem to špatně.
window->setMaximumSize(...)omezí velikost okna při ručním zvětšování (myší), ale tlačítko Maximize ho vesele ingoruje a zvětší okno na celou obrazovku.
Co jsem se zatím dočetl, tak se o maximalizaci a) stará Window Manager, b) maximizeWindowEvent
neexistuje a nedá se pořádně rozlišit co je „obyčejný“ resizeEvent
od maximalizace. Čili řešení může být přepsat ve widgetu resizeEvent
a v něm kontrolovat rozdíly nové a staré velikosti a konečnou velikost případně upravit.
Musím to udělat takhle nebo existuje ještě jiný způsob?
Tiskni
Sdílej: