2014-05-24

魅惑の Qyoto (3) - Label

Qyoto (Qt) を用いたウィジェットを紹介していきますが、まだ Qt の Signal/Slot の理解が十分ではないので、今回は文字を表示するだけのラベルを紹介します。

Fedora 20 における Mono / Qyoto の開発環境の主要なパッケージは、前回と同じく以下の通りです。

  • 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

ラベル

ラベル QLabel は、文字列(あるいは画像)を表示するウィジェットです。

List: label.cs
using System;
using Qyoto;

/**
 * ZetCode Qyoto C# tutorial
 *
 * This program uses QLabel to 
 * show lyrics of a song.
 *
 * @author Jan Bodnar
 * website zetcode.com
 * last modified October 2012
 * 
 * modified by Fuhito Suguri
 * laste modified 24-May-2014
 */

public class QyotoApp : QWidget
{
    public QyotoApp ()
    {
        WindowTitle = "雨ニモマケズ";

        InitUI ();

        Move (100, 100);
        Show ();
    }

    public void InitUI ()
    {
        string text = @"雨ニモマケズ
風ニモマケズ
雪ニモ夏ノ暑サニモマケヌ
丈夫ナカラダヲモチ
慾ハナク
決シテ瞋ラズ
イツモシヅカニワラッテヰル
一日ニ玄米四合ト
味噌ト少シノ野菜ヲタベ
アラユルコトヲ
ジブンヲカンジョウニ入レズニ
ヨクミキキシワカリ
ソシテワスレズ
野原ノ松ノ林ノ蔭ノ
小サナ萓ブキノ小屋ニヰテ
東ニ病気ノコドモアレバ
行ッテ看病シテヤリ
西ニツカレタ母アレバ
行ッテソノ稲ノ朿ヲ負ヒ
南ニ死ニサウナ人アレバ
行ッテコハガラナクテモイヽトイヒ
北ニケンクヮヤソショウガアレバ
ツマラナイカラヤメロトイヒ
ヒドリノトキハナミダヲナガシ
サムサノナツハオロオロアルキ
ミンナニデクノボートヨバレ
ホメラレモセズ
クニモサレズ
サウイフモノニ
ワタシハナリタイ";

        QLabel label = new QLabel (text);
        label.Font = new QFont (null, 8);
        label.SetSizePolicy (QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding);

        QVBoxLayout vbox = new QVBoxLayout (this);
        vbox.AddWidget (label);
    }

    [STAThread]
    public static int Main (String[] args)
    {
        new QApplication (args);
        new QyotoApp ();
        return QApplication.Exec ();
    }
}

フォントの設定をしている QFont では、日本語フォントを制御する確認ができていないので、とりあえずフォントを null にしてサイズだけ指定しています。

コンパイルおよび実行例を以下に示します。

$ mcs label.cs -pkg:qyoto
$ mono label.exe


参考サイト

  1. C# Qyoto tutorial
  2. Qyoto: Main Page - Qyoto Documentation

0 件のコメント: