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 件のコメント:
コメントを投稿