Pytanie jak w temacie, a konkretniej to chcę zbudować ładny interfejs do swojej aplikacji. Nie taki jak w Visual Studio, tylko coś w stylu np. Comodo Internet Security, albo Norton IS, albo może CCleaner. Chodzi mi o ładnie wyglądający, niestandardowy interfejs. Słyszałem, że można to zrobić w html/css i podpiąć pod kod aplikacji, ale nie wiem jak to zrobić. Proszę was o pomoc i pozdrawiam.
Polecam Qt Quick. Wykorzystuje on język QML oparty na JavaScript. QML można integrować z C++ i Pythonem. Przykłady podane są w linku. Prościej chyba się nie da;) Zwłaszcza, że do pracy można wykorzystać Photoshopa (
) i IDE Qt Designer.
Świetne efekty małym nakładem pracy, bardzo dobra wydajność, płynne animacje itd.
Z innych używających HTMLayout to ostatnio widziałem Advanced Installer także korzysta, doczytałem w “About” (http://www.advancedinstaller.com/ - taki program do tworzenia instalatorów do programów).
Inną opcją jest też np osadzenie silnika Chrome w swojej aplikacji, to daje największe możliwości, HTML5 + CSS3 + Javascript, ale narzut jest większy bo aż 10 MB dllek (upx’ed). Jest projekt Chromium Embedded Framework (CEF), który pozwala w łatwy sposób osadzić silnik Chrome: http://code.google.com/p/chromiumembedded/ . Pracuję nad wiązaniami Pythona dla tego projektu, ale jeszcze długa droga (http://code.google.com/p/cefpython/)
Sam Qt ma przecież QSS, który pozwala ładnie dekorować okna używając języka CSS-podobnego, nie wspominając już o możliwościach nadpisania dekoratorów i stworzenia własnego wektorowego stylu.
Podobnie w Javie i Swingu, motyw Nimbus wprowadzony w 6 wersji jest bardzo ładny i modyfikowalny, widziałem bardzo ładne interfejsy zrobione w nim.
Nimbus jest ładny, chociaż ostatnio jak w jEdit zmieniłem na Nimbus to jakieś drobne artefakty pod Windows wyszły. Styl “natywny” w Swingu nie za dobrze się prezentuje. Poza tym “ładny interfejs” to pojęcie względne. Wg mnie zawsze dobrze wygląda poprawnie zaprojektowany natywny interfejs.
Jeśli chodzi o QML to mogę pokazać jak osadzić kod w Pythonie na przykładzie, który akurat mam “pod ręką”. Program wyświetla animowane zegary złożone z obrazów PNG. Nie ma tu typowych kontrolek czy widgetów. Te można znaleźć w przykładach QML Ui Components (udostępniane wraz z PyQt) i dokumentacji w internecie lub zrobić własne. Zasada działania jest podobna, zostaje tylko kwestia poznania QML (JavaScript).