LinuxMint 20 でMono Developを使ってみる備忘録
たしかに簡単なGUIアプリケーションを開発するのにWindowsのC#(Visual Studio)は使いやすいと思います。LinuxにもVisualStudioに似たC#でのGUI開発環境ができないものかとググってたところMono Developというのを見つけました。ずいぶん以前よりMonoはLinux上で使えるC#環境だというのは聞いていましたが今回始めて触ってみることにしました。
■インストール
インストールしてみたLinuxは、LinuxMint 20 cinnamonです。
まず、Mono関係をインストールします。 デスクトップのメニューより[システム管理]->[ソフトウェアの管理]を選択して [ソフトウェアの管理]ウィンドウを開きます。で、検索窓にmonoと入力してMono-develを探してインストールします。(GTK関係のライブラリは前にインストールしていたので何が必須かはちょっとわかりません)
次に、MonoDevelopのダウントードページを参考にして以下のコマンドを実行してインストールします。執筆時点では、LinuxMint20のベースであるUbuntu20.04の記載がないのでUbuntu18.04のを使ってみます。
hoge $ sudo apt install apt-transport-https dirmngr
hoge $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
hoge $ echo "deb https://download.mono-project.com/repo/ubuntu vs-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-vs.list
hoge $ sudo apt update
hoge $ sudo apt-get install monodevelop
これでMonoDevelopが使えるようになりました。
■ Hello World
まずは、Hello Worlldしてみましよう。
デスクトップのメニューより[プログラミング]->[MonoDevelop]でVisualStudioっぽいウィンドウが開きます。(アップした画像の色が薄いかもです。画像をクリックすると大きく表示します。)
ソリューションの下の新規作成をクリックしてください。プロジェクトの種類の選択画面が表示されます。でその他の下の.NETからGTK# 2.0プロジェクトを選択して[次へ]ボタンを押してください。
新しいGtk# 2.0プロジェクトの構成の設定画面になりますのでプロジェクト名を決めてディレクトリを選択してください。
Program.csのソースコードが表示された状態でエディタが開きます。
左側のソリューションツリーからMainWindow.csを選択してください。
で、エディタの左下に[ソース][デザイナー]というタブがあるので[デザイナー]をクリックしてください。VisualStudioのようなデザイン画面が表示されます。
VisualStudiioだとこの状態でLabelやButtonを配置していけますがGTK系ですのでframeにコンテナをかぶせてやる必要があります。VisualStudioと同じ自由に配置できるコンテナは、Fixedです。右側のツールボックスよりFixedをframeの上にドラッグしてください。その後はVisulaStudioと同じようにウィジットを配置していけます。
ここでは、Labelを中央に配置して”Hello World”にしてButtonを右下に配置して”Exit”にしてみました。Buttonの縦横サイズはプロパティのCommon Widget PropertiesのWidthRequestとHeightRequestで設定します。問題はFontの設定です。まだよくわかってないのですが今の所デザーナー画面に反映させられる設定方法は見つけられていません。ソリューションディレクトリの下のgtk-guiディレクトリの中のMainWindow.csに各ウィジットをnewしていますのでそこで最上部にusing Pango;してlabel1をnewした記述の後ろに
label1.ModifyFont(FontDescription.FromString("Courier 16"));
でrun後にfontが変わることは確認しました。ここでは触らずにHello World をしていきます。
次にExitボタンで終了させるためにButtonのシグナルを設定します。右側のプロパティパネルの下の[プロパティ]/[シグナル]タブから[シグナル]を選択してButton SignalsからClickedの横のここをクリックして…をダブルクリックします。そうするとOnExitButtonClickedが現れます。そおの後にClicked自体をダブルクリックするとVisualStudioと同じ感じでClickイベントが追記されたソースが表示されますのでその中に
Application.Quit();
と入力してSaveしてください。
メインメニューから[実行]->[デバッグの開始]で実行されます。
リリースするときはメインメニューの左下のDebugをReleaseに変えてメインメニューの[ビルド]->[すべてビルド]でソリューションディレクトリの下にbin/Releaseディレクトリができてその中にビルドしたxxxx.exeファイルがあるのでNemo(GUIファイルマネージャー)の場合はそのexeファイルを右クリックで[Mono Rutimeで開く]で実行できます。またターミナルからは
hoge ... /bin/Release $ mono xxxx.exe
で実行することが可能です。
■gpio.sharpを参照
[2021.06.20追記]
久々にMonoDevelopを使おうとして実行をかけたらErrorがでました。実行環境は以下の通りです。
- Linux MInt20.1
- Mono Develop version7.8.4
- Mono 6.12.0.122
エラー内容は以下の通りです。
The type ‘Application’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘gio-sharp‘, Version 3.0.0.0, Culture=neutral, PublicKey Token=xxxxxxxx….
gio-sharpを参照に追加しろということのようです。以前に設定を変えたつもりはなかったのでupdate時になにか変わってしまったのかもしれません。でgio-sharpを参照に追加します。
MonoDevelopウィンドウの左側のソリューション下の[参照]を右クリックして[参照の編集]を選択。
参照の編集ウィンドウが開くのでgio-sharpのところにチェックを入れて[OK]
再度、実行してみてErrorが出ず実行できることが確認できました。
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント