リナザウのソフトウェア開発


○ 第4章 画面にペイントしてみる「キャンバスを配置する」






ここからは、画面にいろいろ書いてみましょう。
試行錯誤してやっとできるようになりました。現実世界と同じく、キャンバスには額ですね。




<CPPファイル名 main.cpp>

#include <qpe/qpeapplication.h>   // 使用するクラスを指定する

#include "mainwindow.h"   // 使用するプログラムを指定する

int main(int argc, char *argv[])
{
	QPEApplication a(argc,argv);
	Mainwindow *mw = new Mainwindow();
	a.showMainWidget(mw);
	return a.exec();
}


(解説は、かきかけ)



<ヘッダーファイル名 mainwindow.h>

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <qmainwindow.h>   // 使用するクラスを指定する
#include <qapplication.h>
#include <qcanvas.h>
#include <qtextcodec.h>
#include <qfont.h>
#include <qpainter.h>
#include <qpixmap.h>

class Mainwindow : public QWidget{
	Q_OBJECT

public:
	Mainwindow(QWidget *parent = 0, const char *name = 0);

protected:
    void paintEvent( QPaintEvent * );

private:
	QTextCodec *codec; // テキストコーデック
	QCanvas *qs;  // 簡単にいえば絵を描くところ。絵画のキャンバスといっしょ。
	QCanvasView *qcv;  // QCanvas を表示させるもの。額みたいな。
};

#endif //MAINWINDOW_H


(解説は、かきかけ)



<CPPファイル名 mainwindow.cpp>

#include "mainwindow.h"  // mainwindow.cpp のヘッダーファイル mainwindow.h を読み込み

Mainwindow::Mainwindow(QWidget *parent, const char *name)
		: QWidget(parent, name)
{
	// テキストコーデック「codec」を作成
	// 以降、codec->toUnicode("ここに書いたことは日本語で表示できる")
	codec = QTextCodec::codecForName("ShiftJIS");

	// ウィンドウのタイトルを設定
	setCaption(codec->toUnicode("サンプル5「QCanvas を画面上に配置する」"));

	// 使用するフォントを設定
	QFont f("lcfont",18);
	setFont(f);
	
	qs = new QCanvas(this);  // キャンバスを作成
    qs -> resize(800,800);  // キャンバスのサイズを縦800、横800に設定
    qcv = new QCanvasView(qs,this);  // キャンバスの額を作成
    qcv -> setGeometry(0, 0, 640, 480);  // キャンバスの額の位置を設定
    qcv -> setVScrollBarMode( QScrollView::AlwaysOff );  // V=vertical 垂直のスクロールバーを常にOFF
    qcv -> setHScrollBarMode( QScrollView::AlwaysOff );  // H=horizontal 水平のスクロールバーを常にOFF
    qs -> setBackgroundColor(QColor::QColor(200,0,0));  // キャンバスの背景を赤色で塗る
    update();  // キャンバスを更新(書き換え)
}


// QCanvas を使うときにはなくてはいけない?update()実行時にこの中身が実行され画面中に描画される
void Mainwindow::paintEvent( QPaintEvent * )
{
    
}


(解説は、かきかけ)




というわけで、さっそくコンパイルして実行してみましょう。
ここでは、「~/SLZaurus/」以下に「sample0005」フォルダを作成し、その中にソースがあることを前提にしています。


Cygwinを起動して、次のコマンドを実行してください。



. ~/SLZaurus/bin/dev-arm-qpe.sh
cd ~/SLZaurus/sample0005
progen -o sample0005.pro
tmake -o Makefile sample0005.pro
make



これでエラーが出なければ、「sample0005」というファイルがソースと同一のフォルダに作成されているので、それをリナザウに移してターミナルから実行してみてください。
エラーが出た場合は、もう一度ソースを見直して、問題のある個所を修正しましょう。問題のある個所は、「make」後のエラー情報でも最低限のことは提供されます。




いろんな図形が描けるはず。いろいろ試してみてくださいね。




<ソース>

sample0005.tar.gz




前へ ○○○ 「リナザウのソフトウェア開発」 ○○○ 次へ






inserted by FC2 system