Fórum Root.cz
Hlavní témata => Windows a jiné systémy => Téma založeno: okalousek 02. 03. 2020, 16:03:05
-
Ahoj.
Rád bych udělal nějakou GUI desktop aplikaci a rád bych se poptal v čem ji mám dělat.
Mam dualboot Windows a Linux ale v Linuxu budu programovat, jsou tam mnohem lepší nástroje.
Umím docela v C# ale nebojím se naučit něco nového.
Zatím se mi líbí c# Avalonia (multiplatforma)
Qt ani Gtk nechci.
Nejlépe kdyby to bylo nativní (stačí mi Linux, Windows).
Nějaká doporučení?
-
Proč nechcete standardní a nejpoužívanější toolkity Gtk a Qt?
-
Gtk je sice multiplatformní ale tak nějak že to nějak funguje a Qt je c++ framework kterému se chci vyhnout
-
Qt ani Gtk nechci.
Proč?
Nejlépe kdyby to bylo nativní (stačí mi Linux, Windows).
Nativní pro Linux nebo pro Windows, nejde oboje najednou. Takovou věc právě zastřešují frameworky Qt, GTK a další.
-
Gtk je sice multiplatformní ale tak nějak že to nějak funguje a Qt je c++ framework kterému se chci vyhnout
V Qt můžete dělat v různých jazycích, nejste vázán pouze na C++
-
No, Gtk mi přijde že jde spíš cestou GNOME only a pro Windows je to spíš sekundární. Spíš mířím na Windows ale byl bych rád aby to šlo v pohodě i na Linuxu.
-
Rust-Qt a QML?
-
Jak jsem psal v sousedním vlákně, existuje https://www.wxwidgets.org. Nativní widgety pro Windows i Linux, kdysi jsem to používal z wxPython-u a líbilo se mi to. Dneska by mě vadilo, že jsou bindingy jen pro C++, Python, Perl a Haskell, ale kdyby to pro tebe nebyl problém, může to být dobrá volba.
-
Gtk je sice multiplatformní ale tak nějak že to nějak funguje a Qt je c++ framework kterému se chci vyhnout
V Qt můžete dělat v různých jazycích, nejste vázán pouze na C++
Jen doplním zdroj:
https://wiki.qt.io/Language_Bindings
Klidně můžete s Qt pracovat i v C#/Mono/.Net, které znáte.
-
.NET Core 3 už má GUI - Windows Forms, WPF and Universal Windows Platform (UWP). Nemám s tím zkušenost, ale pokud umíte C# tak bych osobně prověřil nejprve to. Mělo by to být plnohodnotné.
-
.NET Core 3 už má GUI - Windows Forms, WPF and Universal Windows Platform (UWP). Nemám s tím zkušenost, ale pokud umíte C# tak bych osobně prověřil nejprve to. Mělo by to být plnohodnotné.
To ale pod Linuxem nespustíte (nativně). WinForms by šlo přes Wine, WPF s trochou úsilí a UWP už výbec.
-
Nechám se poučit, jak to v .NET funguje. Jako že pro to není na linuxu runtime nebo jak? Měl jsem za to, že to na linuxu běží?
-
Nechám se poučit, jak to v .NET funguje. Jako že pro to není na linuxu runtime nebo jak? Měl jsem za to, že to na linuxu běží?
Winforms se vykreslují přes Win32 a WPF přes DirectX.
UWP běží úplně v jiném runtime než je .NET Core (WinRT)
-
Děkuji za vysvětlení.
Tady jsem našel i docela názorný obrázek, co je kde podporované https://devblogs.microsoft.com/dotnet/net-core-3-and-support-for-windows-desktop-applications/
-
Sám mám rád GNOME a Gtk aplikace ale ty jsou doma snad jen v Linuxu 😟.
Takže asi zvolím to Qt.
Buď půjdu do Go nebo do Rustu, sám nevím čí by pro to Qt bylo lepší.
Jinak, děkuji za rady.
-
Gtk je sice multiplatformní ale tak nějak že to nějak funguje a Qt je c++ framework kterému se chci vyhnout
Já ho na windows používal roky. Teď preferuji web gui přes websockety, to je kompatibilní se vším, ale to se vám asi taky líbit nebude. Pak jsem ještě slyšel o kiwi, výhodou by měla být kompatibilita i s androidem, ale nevím jak je to použitelné.
-
Tak nic, kiwi je jen python only.
-
Nakonec jsme se dohodli na tom Rustu ale zase jsme se rozhádali o tookitu.
Máme zatím 2 kandidáty: Gtk a Qt (zvláštní že kandidáti jsou ti kterým jsem se chtěl vyhnout).
Program chceme udělat pro Linux ale také aby to šlo dobře na Windows.
Docela se mi líbí jak jsem již zmiňoval GNOME aplikace (CSD, jejich návrhy).
-
Nakonec jsme se dohodli na tom Rustu ale zase jsme se rozhádali o tookitu.
Máme zatím 2 kandidáty: Gtk a Qt (zvláštní že kandidáti jsou ti kterým jsem se chtěl vyhnout).
Program chceme udělat pro Linux ale také aby to šlo dobře na Windows.
Docela se mi líbí jak jsem již zmiňoval GNOME aplikace (CSD, jejich návrhy).
Jestli Rust, tak skoro jednoznačně Gtk, bindingy na Qt jsou v bůhvíjakém stavu.
Koukni na crates relm a vgtk.
-
Nakonec jsme se dohodli na tom Rustu ale zase jsme se rozhádali o tookitu.
Máme zatím 2 kandidáty: Gtk a Qt (zvláštní že kandidáti jsou ti kterým jsem se chtěl vyhnout).
Program chceme udělat pro Linux ale také aby to šlo dobře na Windows.
Docela se mi líbí jak jsem již zmiňoval GNOME aplikace (CSD, jejich návrhy).
Jestli Rust, tak skoro jednoznačně Gtk, bindingy na Qt jsou v bůhvíjakém stavu.
Koukni na crates relm a vgtk.
Já bych byl rád, aby to fungovalo dobře i na Windows. Každý ví, že Qt aplikace vypadají na Windows docela pěkně a vím o tom že fungují. O tom Gtk na Windows moc nevím.
-
Zkoušel sem nějaký čas zpátky GTK/Pidgin na Windows a vypadalo to rozhodně méně nativně než aplikace v Qt.
-
Zkoušel sem nějaký čas zpátky GTK/Pidgin na Windows a vypadalo to rozhodně méně nativně než aplikace v Qt.
Naposled, co jsem Pidgina používal na widlích vypadal uplně v pohodě, nevšiml bych si, že neni nativní. Ale je fakt, že to už je pár let dozadu.
-
Pozri aj FLTK https://www.fltk.org/ ..mozno sa zapaci :)
-
Zkoušel sem nějaký čas zpátky GTK/Pidgin na Windows a vypadalo to rozhodně méně nativně než aplikace v Qt.
Naposled, co jsem Pidgina používal na widlích vypadal uplně v pohodě, nevšiml bych si, že neni nativní. Ale je fakt, že to už je pár let dozadu.
No ano, je to Gtk+ 2
A dokonce má commit naposledy před 3 roky.
-
Nezaznělo tady zatím Ultimate++. Mám čerstvou zkušenost na Windows, na Linuxu zatím nikoli. A jsem poměrně mile překvapen. Ano je to celé v C++. S licencí ve stylu BSD.
Co v tom chcete tvořit? Tzn. jaké potřebujete knihovny/komponenty?
-
Nezaznělo tady zatím Ultimate++. Mám čerstvou zkušenost na Windows, na Linuxu zatím nikoli. A jsem poměrně mile překvapen. Ano je to celé v C++. S licencí ve stylu BSD.
Co v tom chcete tvořit? Tzn. jaké potřebujete knihovny/komponenty?
Mám vám to nakreslit? 😉
Budu dělat digitální kartotéku:
Přehled Karet (vlastní Widget?), Kde bude:
Název karty, její nějaké vlastnosti a tlačítka s otevřením, podnabídkou s exportem...
Když se to otevře, bude tam rozhraní pro úpravu.
Kartu můžete mít že šablony, kde jsou vlastnosti. Pokud to v šabloně dovolíte, lze i individuálně přidávat.
-
Udělej gui v prohlížeči, neprohloupíš.
-
Udělej gui v prohlížeči, neprohloupíš.
Dobrý nápad. Jenže manipulace DOMu je možná (pokud vím, když tak mě opravte) jen přes JavaScript. Ještě je tu Webassembly, ale tam nevím.
-
Udělej gui v prohlížeči, neprohloupíš.
Dobrý nápad. Jenže manipulace DOMu je možná (pokud vím, když tak mě opravte) jen přes JavaScript. Ještě je tu Webassembly, ale tam nevím.
Cílem je mít užitečnou aplikaci nebo něco jiného? Jestli užitečnou aplikaci, tak nástroje bych řešil až sekundárně a podřídil je požadovanému cíli. Webové prostředí je pro tento typ ideální a nabízí jednu ohromnou výhodu, může to automaticky běžet terminálově. Tj. program může normálně běžet na pc s ui v browseru, ale v případě potřeby jde ui oddělit a spustit kdekoliv a na čemkoliv, třeba na tabletu, s trochou snahy je lehké zařídit i multiuživatelské používání. Kartotéka zní jako něco, kde by se obojí mohlo hodit. To za prvé.
Za druhé existuje řada transpilerů, to jest překladačů z různých jazyků do javascriptu. Nevím jak v Rustu, ale pro Python existuje třeba Flexx. Podívej se třeba na tuhle ukázku, s jakým minimálním úsilím lze vytvářet slušně vypadající aplikace používající prohlížeč jako UI. A bez přímého použití javascriptu. https://flexx.readthedocs.io/en/stable/examples/sine_src.html#sine-py Pro Rust snad najdeš něco podobného. Pokud ne, přehodnotil bych přístup a přizpůsobil nástroje požadovanému cíli.
-
Mám vám to nakreslit?
Budu dělat digitální kartotéku:
Přehled Karet (vlastní Widget?), Kde bude:
Název karty, její nějaké vlastnosti a tlačítka s otevřením, podnabídkou s exportem...
Když se to otevře, bude tam rozhraní pro úpravu.
Kartu můžete mít že šablony, kde jsou vlastnosti. Pokud to v šabloně dovolíte, lze i individuálně přidávat.
Teď mírně uvažuju nad tím, že by se mi možná hodilo něco podobného, koukal jsem po nástrojích, které umožňují takový typ aplikace (open source user-friendly frontend pro DB s master-detail rozhraním) udělat s minimálním úsilím. Našel jsem třeba https://www.openxava.org/ , od pohledu mi to přijde dobrý. Máte s něčím podobným někdo dobré zkušenosti?
-
Mám vám to nakreslit?
Budu dělat digitální kartotéku:
Přehled Karet (vlastní Widget?), Kde bude:
Název karty, její nějaké vlastnosti a tlačítka s otevřením, podnabídkou s exportem...
Když se to otevře, bude tam rozhraní pro úpravu.
Kartu můžete mít že šablony, kde jsou vlastnosti. Pokud to v šabloně dovolíte, lze i individuálně přidávat.
Teď mírně uvažuju nad tím, že by se mi možná hodilo něco podobného, koukal jsem po nástrojích, které umožňují takový typ aplikace (open source user-friendly frontend pro DB s master-detail rozhraním) udělat s minimálním úsilím. Našel jsem třeba https://www.openxava.org/ , od pohledu mi to přijde dobrý. Máte s něčím podobným někdo dobré zkušenosti?
No to „udělat s minimálním úsilím“ je docela relativní. Třeba Openxava (https://www.openxava.org/) je komplexní nástroj a pro nasazení to musíte nejspíš docela nastudovat.
Mě zaujal ještě Apache Isis (https://isis.apache.org/). Ten mi přišel hodně zajímavý a jednoduchý sample jsem rozběhal za chvíli. Na druhou stranu, pokud znáte libovolný toolkit, základní master-detail aplikaci máte také hotovou za chvíli. Spíš jde o ten další level, kdy chcete aby to našeptávalo hodnoty, validovalo, kontrolovalo kardinalitu, práva atd. Tam potom ta komplexita dost rychle vystřelí nahoru... Pro tyhle účely se hodí nástroj, který na tyto situace pamatuje. Ale zase ho musíte nastudovat. Řekl bych, že platí něco jako zákon zachování pracnosti :-D Takže to není jen o toolkitu...