Windowsでちょっとした用途のデスクトップアプリを作りたい。
これまでのようにElectron、NW.jsやCordova/Phonegapでもいいんですが、ちょっとネイティブ寄りのものに手を付けたい気分。
とはいえ新しいものを1から使うのもためらわれたのでロジック部分はGolangに任せる想定をして、Go+Qtでどんな感じになるのか作ってみたいと思います。
Qt(キュート)
クロスプラットフォームフレームワークで主にGUI作成に使われる。
ウィジェットツールキットとか GUIツールキットとして使います。
他のツールキットでもGolangライブラリはあったけど、ざっと見でこれがよさそうだなと思ったので選択。
ライブラリ
いつものようにGithubで検索してtherecipe/qtを使うことにします。
インストール
wiki/Installation-on-Windowsを参照。
Fast track versionならQtをインストールする必要すらなく1コマンドです。
コマンドはそのままだとPowerShellで動かないのでコマンドプロンプトで実行する。
今回はプロジェクトインストールしました。
1 |
>go get -v github.com/therecipe/qt && go install -v -tags=no_env github.com/therecipe/qt/cmd/... && go mod vendor && git clone https://github.com/therecipe/env_windows_amd64_513.git vendor/github.com/therecipe/env_windows_amd64_513 && for /f %v in ('go env GOPATH') do %v\bin\qtsetup |
テストデプロイ
1 2 3 |
qtdeploy test desktop github.com/therecipe/examples/basic/widgets qtdeploy test desktop github.com/therecipe/examples/basic/quick qtdeploy test desktop github.com/therecipe/examples/basic/qml |
それぞれのソースはここにあります。
実行ファイルは./examples/basic/{widgets,quick,qml}/deploy/windows
に保存されていて、配布などする場合には大量のDLLファイルも必要です。
デフォルトの見た目はなんというかWidgetsは懐かしくQMLもちょっと古い感じに見えるけど、そこはどうと出来るはず。
所感
フレームワークを使うのにやたらスムーズにできたの凄い。大体詰まるのに。
サンプルビルドすると思ったよりサイズが大きくなる(widgets 56MB、qml 77MB)のが気になるけど、いらないDLLを省いたりできるんだろうか。
最低限のものを作るのは簡単そうだけど品質を考えるとQtそのものをしっかり勉強しないとダメそうだなぁという感じです。ちょっと置いておいて他も見ようかな。