Elsaの技術日記(徒然なるままに)

主に自分で作ったアプリとかの報告・日記を記載

MENU

LinuxでのGUI開発 ~monodevelopセットアップ~

突然ですが、皆さんGUI開発は行ったことございますでしょうか?
自分は、Windowsでは実施したことあるのですが、Linuxではやったことがありませんでした。

で、WindowsはFormsやWPFを用いれば簡単に行えることは知っていたのですが(Visual Studioを用いればGUIでポチポチ操作すればよいので楽ですね)、
このFormsやWPFはクロスコンパイルも出来ず。。。
.Net CoreよりCUIを用いればできるようなのですが、、、ぐぬぬ。。。

ということで、LinuxはどうやってGUIを簡単に開発できるのか調べてみました!!


LinuxGUI開発システムとして、
・Qt:https://gihyo.jp/admin/serial/01/ubuntu-recipe/0284
monodevelophttps://www.casleyconsulting.co.jp/blog/engineer/194/
があることがわかりました。
※もしかしたら他にもあるかもしれませんが。

この2択で自分はmonodevelopを選択しました!!
深い理由はありませんが、C#を使ってLinux上でGUI開発してみたかったからですww。
f:id:Elsammit:20200613231440p:plain

Qtはクロスコンパイルが行えるようですし、こちらも後で使って見たいと思います!!

今回の環境ですが、
Ubuntu16.04(VrtualBox)
となります。

まずmonodevelopのインストールですが、

sudo apt-get install monodevelop

です。簡単にインストールできましたw。
Linux を立ち上がてmonodevelopを立ち上げるとこちらのような画面が表示されます。
そして、新しいプロジェクトを作成すればC#でのGUI開発が行えます!!
f:id:Elsammit:20200613231519j:plain

が、、、これだけでは座標指定してボタンや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# ***プロジェクト(***にはバージョンが記載されます)を選択します。
f:id:Elsammit:20200613232132p:plain

ソリューション名を入力し、OKを押下するとソリューションが自動生成されます。
f:id:Elsammit:20200613231832j:plain

MainWindow.csと言うファイルが生成されているかと思いますが、こちらが画面作成用になります。
デザイナーにてモジュールをGUI上でポチポチ出来ます!!とても便利ww。
だけど、1つ注意が必要です。
ボタン等のモジュールを設置する前に、HBoxやVBoxを設置し、その上にボタン等を設置する必要があります!!
これをせずにボタンを配置するとGUIアプリ上にボタンが1つしか置けない、といった悲しい現象が発生します。

以上、monodevelop(+Gtk)のセットアップ手順でした!!
使って見たところ、ここまで行えば、windowsで実施していたような感覚で簡単にGUI開発できそうです!!
ただ1つ解決できていないことがあります。。。
割り込みEventが出来ていないのです(泣)。
分かったら報告したいと思います(泣)。

割り込みEventについては、こちらをご参照下さい。
elsammit-beginnerblg.hatenablog.com