Excelentní série tutoriálů! Hned u PyQT jsem doufal a psal, že bych byl rád za PySide a bylo vyslyšeno. Poklona, je to super napsáno. Už se těším, až si to i vše vyzkouším.
Měl bych jen jeden dotaz. Jak je to s rozdělením věcí a strukturou programu, když se jedná o velký projekt. Prakticky všechny tutorialy na internetu to vždy představí jen v jednom souboru, ale když mám opravdu komplikované GUI, tak to do 1 souboru dávat asi nebudu.
Bylo by možné udělat nějakou názornou ukázku malého GUI, ale rozděleného a připraveného na rozšíření tak, jako kdyby autor počítal s tím, že se z toho stane např. program typu qBittorrent nebo tak?
Tento druh abstrakce mi dělá větší problémy, než pochopit jednotlivé mechaniky. Jak to "přehledně rozdělit".
Díky.
Když jsem dělal s Qt nebo PyQt, tak pomůže naučit se pracovat s designerem. V něm naklikáš view což je XML, podle něho si pak necháš vygenerovat samotnou třídu. Problém mi ale vždy nastal, když se ty komponenty mají propojit mezi sebou, signály a sloty sice jsou celkem jednoduchý na pochopení, ale udělat to spravovatelný není lehký. Někdo zkoušel v QML něco jako redux architekturu známou JS světa, nebo aspoň MVVM.
Díky. Zkusím se o tom rozepsat později (resp. udělat ukázkový projekt), ale určitě nemusí být špatné řešení začít s klasickým rozdělením model-view-controller. PySide k tomu sice úplně nevede, ale oddělení logiky programu od dat (modelu) i od GUI celý projekt nakonec zjednoduší, i když to na začátku bude trvat trošku déle, než to "splácat" dohromady.
U rozdělení do souborů - no někdo používá "Java přístup", tj. co třída, to soubor, ale v Pythonu to nemusí být tak rigidní, takže například dát víc tříd obalujících jednoduché dialogy do jednoho souboru nemusí vadit (ale záleží taky na použitém editoru/IDE). Osobně mi přijde dělení soubor/třída přehlednější, ale popravdě to nedodržujeme ani na našem "profi" projektu... :/
Zajímalo by mě, jestli lze jednomu tlačítku přiřadit víc samostatných klávesových zkratek, např. aby tlačítko reagovalo na stisk "Ctrl+A", nebo taky "Ctrl+B". Samozřejmě jsem hledal příklad, ale našel jsem jen verzi pro C++, kde se využívá třída QList, která ale není součástí Qt a pythoní list nelze ve fci setShortcut použít.
Tady je dokonce jednoduchá třída ActionButton, která dělá přesně takové napojení a navíc umí reagovat na změny stavu QAction. Je to sice C++, ale implementace je triviální a snad snadno pochopitelná i pro necéčkaře.
Ech, přehlídnul jsem v té C++ verzi, že se jedná o příklad použití QAction, to je tak, když člověk dělá víc věcí naráz a pořádně nečte ;)
Každopádně dík za nasměrování.