rustのGUIをさがす旅

 今年はrustをやっていきたい。とかいたところで、

やはりちょっとしたGUIが欲しくなるので

なんかよさげなライブラリやツールキットないものかと探してみるも


・日本語入力、表示どちらもOK

・windows、macOS、Linuxのクロスプラットフォーム対応

・ボタンなどUI要素の細かいデザインにそこまでこだわらない

・かわりになるべく軽いもの

・GUI作るのにrust以外のJavaScriptやCSSなどを書かないで済む

・webviewやwebブラウザに依存しない

・サンプルやチュートリアル、その他ドキュメント多いとうれしい


みたいな希望をあげつつ探してみたところ意外とあてはまるものはなくて。

よさそうなのはTkかFltkあたりがよさそう。


というところでpythonでも使うケース多いしまずはTkでやってみよう。

で、調べてみると。


RustとTcl/TkでGUIアプリを作ろう

https://news.mynavi.jp/techplus/article/rustalgorithm-20/

とちょうど入門によさそうな記事が。


Tcl/Tkのクレートはこちらで

https://crates.io/crates/tk


プロジェクトページはこちら。

rust tk

https://oooutlk.github.io/tk/


で、Windowsでのセットアップは

Installing Tk

https://oooutlk.github.io/tk/installing_tk.html

Installing Tk On Windows

https://oooutlk.github.io/tk/installing_tk_on_windows.html


と、そこらをひとまず読んでみると

WindowsでTcl/Tk使うならactivestateのActiveTclでインストールするのが一番簡単だよ。

バージョンが8.6.xのをダウンロードしてね。

こちらで動作確認したのはwindwos10にActiveTcl8.6.9.8609-2だよ。

とか書いてある。


ただこのActiveTclがダウンロードにメールアドレス登録が必要だったりこれまで無償利用

可能な環境・条件だったものが厳しくなって有償利用でないとだめなケースが増えてるようで。


で、代わりを探してみると


WindowsのTcl/Tkの実行環境

https://qiita.com/qoLop/items/392153b7719d0770d70c


とまさに知りたかったことをまとめてくださっている方が。

というわけでMagicsplatでどうにか


Magicsplat Tcl/Tk for windows

https://www.magicsplat.com/tcl-installer/index.htm


Downloads are available from Sourceforge.とのことなので

https://sourceforge.net/projects/magicsplat/files/magicsplat-tcl/


を見てみるとこちらでも配布されているパッケージが8.6.16と9.0.1の2種類があるので

前述のおすすめ&動作確認済みが8.6.x系だったのでそちらをダウンロードしてインストール。


インストール終わったら適当なフォルダ作ってテスト


>mkdir tkrs

>cd tkrs

>cargo init

>cargo add tk

>cargo add tcl

で、Installing Tkのページにあったサンプル、The Obligatory First Programを

main.rsに書いてcargo runしてみると

Tcl_なんとかがnot found in 'clib'だよ!ってエラーがたくさん出る。


で、調べてみるとllvmに関連してエラーがでることがあるっぽいのでllvmいれてみる。


llvm/llvm-project

https://github.com/llvm/llvm-project/releases

から最新のLLVM-19.1.6-win64.exeダウンロードしてインストール

途中でPATHにllvm追加する?って聞かれるので、すべてのユーザーの環境変数に追加を選択。

(これが現在のユーザーの環境変数にのみ追加だとだめなので注意)


インストール終わったら改めてcargo runすると

こんな感じの小さいウインド表示されたらできあがり。


Fltkのほうもあとで試してみる。

コメント

このブログの人気の投稿

UX331UNのSSD換装した

Mirage Soloのファクトリーリセット

Mirage Solo関連記事のリンクとか