Tohle je právě nějaká knihovna "třetí strany", konkrétně PySimpleGUI. Tkinter nemá problém. Na Windows a Macu má dost nativní vzhled, v Linuxu svůj ve stylu Tcl/Tk, ale rozchodil jsem automatickou konverzi na Gtk (akorát tomu scházelo převzetí barvy pozadí formuláře - potřeba pro tmavý režim, aby neprosvítala světle šedá - a přečtení aktuálně vybraného tématu v desktopu - ať to nevolí programátor/uživatel ručně a ať by default není světlý text na světlém pozadí a naopak, pokud je např. v desktopu tmavé téma a program začíná při prvním spuštění se světlým).
3. 1. 2024, 11:03 editováno autorem komentáře
Nemuzu si pomoct, windows 3.x ... Respektive mozna i vnich to vypadalo lip.
A jako bonus ....
https://i.iinfo.cz/images/300/pysimplegui2-11.webp
Ano, bile pismo na sede, to je uzasna kombinace.
Jeste pred minutou jsem zil v naivni predstave, ze takove veci se delaji ve wisiwig editoru, a ne psanim nejakeho kodu. Uz asi tak 30 let.
Proto mi vyhovuje, když se kopíruje nativní vzhled. Výše píšu, že TKinter jde upravit na automatickou konverzi na Gtk. Na Windows a Macu je nativní vzhled kopírován dost dobře by default. Až jestli konkrétní uživatel chce bílé písmo na modrém pozadí, tak tehdy ať je po jeho.
3. 1. 2024, 11:05 editováno autorem komentáře
I to je možné, i když se člověk "lockne" na konkrétní knihovnu (ale obecně to je lepší pro integraci do desktopu).
na okraj: já udělal pár poměrně GUI heavy aplikací v TkInteru, a to především proto, že to zredukovalo problémy zákazníků na Windows. Prostě TkInter je ve standardním Pythonním bundlu, ať je to přímo z python.org nebo z ActiveState. Ale on tam TkInter měl význam, protože to vlastně byly takové specializované CADy, takže canvas byl docela jasnou volbou.
No těch barvových schémat je několik set, tak jsem náhodně šest naklikal :-) Já jsem odkojen GEMem, takže všechno další je prostě lepší už z principu...
Jinak ale PySimpleGUI podporuje více "portů". Kromě standardního TkInteru je to Qt, Remi a WxPython. A TkInter jde ohnout tak, aby vypadal jako GTK+ aplikace. Hmm budu muset okázat nějaké příklady, jinak mě lidi (co nezažili GEM :p) ukamenují...
Jo jde to udělat nějak takto:
[sg.Submit(key="foo")], ] # vytvoření okna s ovládacími prvky window = sg.Window("Window #20", layout, size=(320, 260), resizable=True, finalize=True) window["foo"].expand(expand_x=True, expand_y=True)
To vytvoří okno s měnitelnou velikostí. A nastaví prvek s klíčem "foo", aby se automaticky roztahoval, co mu hrdlo ráčí :-) Celý příklad ukážu příště.
2. 1. 2024, 17:24 editováno autorem komentáře