2014-05-14

魅惑の Qyoto (1) - Hello Wold!

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! プログラムで動作確認をしました。

List: hello-qyoto.cs
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 上での実行ですが、まだ成功していません。これについても調査結果を紹介していきたいと考えています。

参考サイト

  1. bitWalk's: Mono で GUI プログラミング - Mono 3.4 を試す
  2. C# Qyoto tutorial
  3. Development/Languages/Qyoto - KDE TechBase
  4. bitWalk's: 魅惑の Qyoto

0 件のコメント: