試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Gtk#の小さな例をMonoDevelopで作成した中でのメモ

ここではMonoDevelopを用いて小さなGtk*1アプリケーションを作成する上での作業についてメモしておく。コードはほとんどいじっていないので、C#言語についての内容はほとんどここでは扱っていない。VB.NETについては今後も扱う予定はない。

  1. 作成手順
  2. MonoDevelopはGTK+ 2のAuroraエンジンと相性が悪い?

作成手順

  1. 新しい「ソリューション」を「ファイル」メニューかCtrl+Shift+N、あるいは「ようこそ」タブの「共通のアクション」のところから開く
  2. テンプレートのダイアログでは「C# - Gtk# 2.0 プロジェクト」を選択し、保存先を指定・その後好みによりプロジェクトの機能の設定を行うと初期状態のプロジェクトが開かれる
  3. 「ソリューション」のツリービューにある「ユーザインターフェース」のフォルダから「MainWindow」を開いてコード部分の下に「ソースコード デザイナ」と出たら「デザイナ」の部分をクリックするとインターフェースをグラフィカルに編集できるようになる*2
  4. 「Toolbox」の中(種類はコンテナ)から「VBox」をD&Dして縦方向にウィンドウを分割した後、一番上にメニューバーをD&D
  5. 分割された部分の内、1つを残して他をコンテキストメニューから削除
  6. 今度は「Label」を下の空きにD&Dして「プロパティ - 「プロパティ」タブ」でラベルのプロパティから文字列を編集(今回は「GTKSharpHello」という文字列にした)
  7. 「label1」が選択されている状態でウィンドウが表示されている上の「Expand」で(上に寄っている状態から)領域全体を使えるようにする
  8. メニューをクリックして「_File」という名前の項目を作成し、更にそこをクリック(アクションの作成)して「アイコンを選択」から「gtk-quit」*3を選択し、終了するためのアイコン付き項目を作成
  9. ウィンドウの下にある「ソースコード デザイナ アクション」から「アクション」を選択して先ほど作成した「終了」の項目を選択後「プロパティ - 「シグナル」タブ」の「Activated」に「OnQuitActivated」と入力
  10. コード下部の「ソースコード」を選択するとハンドラOnQuitActivated()が追加されているので波括弧の中に「Application.Quit ();」*4を記述
  11. F5を押すとビルド後実行*5


テンプレート

プロジェクトの設定(機能)
これだけの作業で

このようなウィンドウのアプリケーションが作成され、メニュー項目かウィンドウマネージャの「閉じる」ボタンにより終了する。

MonoDevelopGTK+ 2のAuroraエンジンと相性が悪い?

GTK+ 2の外観にAuroraエンジンを選択してMonoDevelopを使用すると一部見づらい部分が出てしまう。

Auroraエンジンを普段使用している場合、MonoDevelopだけ

$ GTK2_RC_FILES=/usr/share/themes/[テーマ名]/gtk-2.0/gtkrc monodevelop &

などのようにして別のテーマを用いて起動するということは可能。

使用したバージョン:

*1:C#かVisual Basic.NET(MonoBasic)を用いてGTK+アプリケーションが作成・実行できるようにするパッケージ

*2:このグラフィカルなGUIデザイナはsteticというらしく、編集したGUIをC#のコードにして使用することができ、Gladeのファイルのような外部ファイルを実行時に読み込んだりせずに動作する・また、このようにMonoDevelopと統合されているのも特徴

*3:「終了」のアイコン項目

*4:これはPyGTKでのgtk.main_quit()に相当し、逆にgtk.main()に相当するのはMain.csApplication.Run()となる・また、Gtk#では最初にApplication.Init()も呼ぶ

*5:この他、ビルドの操作に関しては幾つかのバリエーションがある