突然ですが、皆さんGUI開発は行ったことございますでしょうか?
自分は、Windowsでは実施したことあるのですが、Linuxではやったことがありませんでした。
で、WindowsはFormsやWPFを用いれば簡単に行えることは知っていたのですが(Visual Studioを用いればGUIでポチポチ操作すればよいので楽ですね)、
このFormsやWPFはクロスコンパイルも出来ず。。。
.Net CoreよりCUIを用いればできるようなのですが、、、ぐぬぬ。。。
ということで、LinuxはどうやってGUIを簡単に開発できるのか調べてみました!!
LinuxのGUI開発システムとして、
・Qt:https://gihyo.jp/admin/serial/01/ubuntu-recipe/0284
・monodevelop:https://www.casleyconsulting.co.jp/blog/engineer/194/
があることがわかりました。
※もしかしたら他にもあるかもしれませんが。
この2択で自分はmonodevelopを選択しました!!
深い理由はありませんが、C#を使ってLinux上でGUI開発してみたかったからですww。
Qtはクロスコンパイルが行えるようですし、こちらも後で使って見たいと思います!!
今回の環境ですが、
Ubuntu16.04(VrtualBox)
となります。
まずmonodevelopのインストールですが、
sudo apt-get install monodevelop
です。簡単にインストールできましたw。
Linux を立ち上がてmonodevelopを立ち上げるとこちらのような画面が表示されます。
そして、新しいプロジェクトを作成すればC#でのGUI開発が行えます!!
が、、、これだけでは座標指定してボタンやLbel、Text等の配置を行わなければならないことがわかりました!!
やれないことはないですが、
デザインを考えて、モジュールをどこに配置すればよいのか座標を考えて、
この座標にボタンを配置して、ここに入力用のTextを指定して、、、とか、、、
うん!!めんどくさい!!
VisualStudio上でのForms、WPFと同様にGUIでポチポチやれば簡単にGUI作成が行えるようにしたい!!
そう思いましたので、併せてGktをインストールし、
monodevelop + Gktの組み合わせにすることにしました。
Gtkのインストール方法についてはこちらを参考し、コマンドで実行。
qiita.com
sudo apt install libgtk-3-dev sudo apt install glade
インストール簡単w。
そして、先ほどと同様にmonodevelopを立ち上げて、新しいプロジェクトを押下するとこちらのような画面になるため、
.NET⇒Gtk# ***プロジェクト(***にはバージョンが記載されます)を選択します。
ソリューション名を入力し、OKを押下するとソリューションが自動生成されます。
MainWindow.csと言うファイルが生成されているかと思いますが、こちらが画面作成用になります。
デザイナーにてモジュールをGUI上でポチポチ出来ます!!とても便利ww。
だけど、1つ注意が必要です。
ボタン等のモジュールを設置する前に、HBoxやVBoxを設置し、その上にボタン等を設置する必要があります!!
これをせずにボタンを配置するとGUIアプリ上にボタンが1つしか置けない、といった悲しい現象が発生します。
以上、monodevelop(+Gtk)のセットアップ手順でした!!
使って見たところ、ここまで行えば、windowsで実施していたような感覚で簡単にGUI開発できそうです!!
ただ1つ解決できていないことがあります。。。
割り込みEventが出来ていないのです(泣)。
分かったら報告したいと思います(泣)。
割り込みEventについては、こちらをご参照下さい。
elsammit-beginnerblg.hatenablog.com