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

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

MENU

LinuxでのGUI開発 ~monodevelop+Gtk割り込み~

前回、monodevelop + Gtkを用いることで簡単にGUI開発が行えることを記載しました。
そこで、割り込みが出来ていなかったため苦労していたのですが、、、
やっとできましたので報告!!

結論から申しますと、formsやWPFと同様にClickイベントに登録すればよかっただけでした!!
難しく考えすぎていましたw。

では詳細を報告!!
まずボタンモジュールをwindowにセットして、
f:id:Elsammit:20200614142657j:plain

ボタンモジュールに対してクリックイベントを登録!!

button1.Clicked += ButtonPressHandler;

int count = 0;
void ButtonPressHandler(object o,EventArgs args){
        count++;
        label1.Text = "count is "+ count.ToString();
}

こうすれば、ボタンクリック時の割り込みイベントが登録され、実際にGUIアプリ上でボタン押下すると登録した処理が実行できるようになります。
※上記コードはボタンクリック毎にクリックした回数をlabelに表示する簡単な処理になります。

合わせて、画面遷移についても確認しました!!
まず、プロジェクトに「新しいファイル」でGtk⇒ウィンドウを選択することで新規画面作成します。
新規画面への遷移の方法はですが、新規画面のインスタンスを生成してshow()関数コールするのみ!!です。
例えば、新規window名をwindowとし、ボタン押下で別画面に遷移するための処理はこちらになります。

window w = new window();

void ButtonPressHandler(object o,EventArgs args){
        window w = new window();
        w.show();
}

ただし、初期画面(Main画面)はnamespaceには参加していないようですので、
初期画面(Main画面)から新規作成した別画面に遷移するためにはnamespaceをusingで追加する必要があります。

以上。
短いですが、monodevelop+Gtkでの割り込み処理追加でした!!

monodevelop + Gtkvisual Studio C#でのforms、WPFと同じ感覚で使えるので、visual Studioに慣れている方であればとっつきやすい環境かと思います。
今後、Linux上でGUIアプリ作成するときにはmonodevelop+Gtk使っていきたいと思います!!