Java のように、Linux 上で開発したプログラムを Windows でも動作させることができる開発環境を常に探索していますが、.Net/Mono もそのように利用できそうだと注目しています。
ただ GUI ライブラリに何を使うかが悩みの種です。C# については、Windows 上では .Net、Linux 上では Mono の開発環境を使えば良いと考えています。そういう考えに立って Windows と Linux の両方で利用できる GUI ライブラリを考えた場合、Linux 上での Mono / GTk# の組み合わせは問題ないのですが、Windows 上で Mono 抜きに .Net / GTk# の開発環境を構築する壁にぶつかります。
そこで wxWidgets の wx.Net や Qt の Qyoto などの .Net / Mono バインディングを調べてみたところ、Qyoto が Fedora で利用できることが判りましたので、とりあえず試してみました。
Fedora 20 における Mono / Qyoto の開発環境の主要なパッケージは以下の通りです。なお、Fedora 20 における Mono-3.4 系のパッケージの入手については、本記事の最後にある、参考サイト 1. を参照してください。
- mono-core-3.4.0-2.fc20.x86_64
- qt-4.8.6-5.fc20.x86_64
- qyoto-4.12.5-1.fc20.x86_64
- qyoto-devel-4.12.5-1.fc20.x86_64
参考サイト 2. に掲載されているサンプルをベースにして、簡単な Hello World! プログラムで動作確認をしました。
using System; using Qyoto; /** * ZetCode Qyoto C# tutorial * * This program creates a quit * button. When we press the button, * the application terminates. * * @author Jan Bodnar * website zetcode.com * last modified October 2012 * * modified by Fuhito Suguri * last modified 13-May-2014 */ public class QyotoApp : QWidget { public QyotoApp() { WindowTitle = "mono/qyoto"; InitUI(); Resize(180, 60); Move(300, 300); Show(); } public void InitUI() { QPushButton but = new QPushButton("こんにちは、世界!", this); Connect(but, SIGNAL("clicked()"), qApp, SLOT("quit()")); but.SetGeometry(10, 10, 160, 40); } [STAThread] public static int Main(String[] args) { new QApplication(args); new QyotoApp(); return QApplication.Exec(); } }
Mono によるコンパイルおよび実行例を以下に示します。
$ mcs hello-qyoto.cs -pkg:qyoto $ mono hello-qyoto.exe
参考サイト 2. に掲載されているサンプルをざっとみたところ、これなら自分でもできそうだと思いましたので、そこに掲載されているサンプルをベースに、今後何回かに分けて Qyoto を使った Mono のプログラミング例を紹介していく予定です 4.。
ちなみに、Windows 上での実行ですが、まだ成功していません。これについても調査結果を紹介していきたいと考えています。
0 件のコメント:
コメントを投稿