懲りずにGUIクレートを調査するよ。
今回は、egui。
検索すると大抵最初にヒットするんだけど、テーブルウェジットが無さそうなので、スルーしてた。
けど、検索方法が悪かったらしくGridというウェジットがあり、これがテーブルみたい。
ならば試すっ。
すでにDL済みだったので、さっそくウィンドウ表示するだけのソース書いて、実行。
おぉ、最初っから背景色が黒くて俺好み。
最初に確認するのは最小化。
動いたっ!
最小化したっ!
次は、最大化。
動いたっ!
最大化したっ!
なんちゅぅか、何でこんな基本機能が動いただけで、大騒ぎしなきゃいかんのか。
それだけRustのGUIが発展途上という事か。
ようやくまともなクレート見つけた。
では、まともに動きを確認。
ラベルとテキストボックス、スライダー、ボタンはちゃんと動く。
当たり前だが。
だが、テキストボックスでIMEがONにならん。
メンテナーは海外の人だし、IMEなんて使ってないか。
調べてみると、丁度IMEバグのあるバージョンだった。
クソかよっ。
最新版を確認すると、バージョン上がってるし。
またDLして持ってこないといかんのか。
GUIは、コンパイル時の依存クレートが350くらいあって、くっそ時間かかる。
かつ、関連データが2GB超えてて、圧縮しても1GB弱。
徐々にクレート導入が手間になってきた。
これだからオフライン環境はクソ。
なんとか最新版を導入。
テキストボックスでIMEがONになる事を確認。
入力すると、文字化け~。
まぁこれは想定してた。
IMEの調査で、日本語表示には、フォント設定が必要と書いてあったから。
最新ドキュメントを参照しつつ、フォント設定して、実行。
ラベルに書いた日本語が表示された。
IMEで変換した文字も問題ない。
おぉ、ようやく普通に使えるGUIクレートだぁぁ。
これまで駄目だったクレートと違って、有名?クレートに依存していないのが良かったのかも。
ただ、気になるのは、60FPSで再描画するという仕様。
ゲーム用として人気らしいけど、俺が作るのは業務アプリなので、そんなに描画しなくてよい。
アプリを起動しているだけだと、CPUとGPU共に、ほぼ使わない。
常に60FPSな訳じゃないのは素晴らしい。
次は、アプリ上で、マウスをぐりぐり動かす。
これだけで、60FPSで再描画されるらしい。
CPUは5%上昇、GPUは10%上昇。
思ったより負荷小さい。
助かった。
この程度の負荷なら、業務アプリ作っても問題ないかな。
あとは、Gridがどんなもんなのか。
来週は、その辺の確認をしよう。