QTでの描画

QT



はじめに


QTは、C ++で実装されたクロスプラットフォームアプリケーションを開発するためのテクノロジーです。 Nokiaはそのための優れた技術と優れたIDEをリリースしました。私の意見では、プログラムの書きやすさ(OOPとC ++を知っている必要があります)と同時「制御性」(すべてのライブラリを表示できます)がうまく組み合わされています。 その結果、必要なものだけが接続される最適化されたアプリケーションができます。 もちろん、いくつかの既製の実装、たとえばフォーカスを受け取るイベントはありませんが、実装にはすべてがあります。



QTを勉強するとき、グラフィックを実装するという世界的な問題に出くわすことがあります。 また、Googleで検索しようとすると、達人が座っているフォーラムを見つけて同じGoogleに「送信」できますが、もちろん例外があります。 マックス・シュリーはこれについて素晴らしい本で書いていますが、それはもっと神経質な輪郭に似ています。 QT Assistantは素晴らしいことですが、それを把握するだけの既製の例はありません。 一般に、OOPの3つのソースと知識をすべて使用したため、私は理解しました。 もちろん、あなたが望むなら、あなたはそれを簡単に理解できると言うことができますが、私はその人にGoogleに行き、「Drawing in QT」と入力して、すべてが例として説明される記事に行きたいと言います。



イデオロギー


QTでは、.NETのようではありません(1つのクラスのライブラリを接続すると同時に、他のクラスをギフトとして接続し、RAMを吸収するマシンを取得します)。 QTのイデオロギーは次のとおりです。QWidgetからpublicを継承するクラスを作成する必要があります。 描画するオブジェクトのクラスを取得します。 クラスは別のヘッダーファイルに作成できますが、基本的には「wigdet.h」を作成しました。

class canvas : public QWidget {

Q_OBJECT

public:

canvas(QWidget* parent=0):QWidget(parent){}

~canvas(){}

void paintEvent(QPaintEvent*); // , ,

bool par; /* , . - , - . */



protected:

};









描画用オブジェクトの作成と描画用メソッドのプログラミング


さらに、クラスを作成した後、オブジェクトの宣言に進み、メソッドを呼び出すことができます。 これはすべて、イベントがある場所で実行できます。 この「widget.cpp」があります。 宣言は、任意のイベントまたはプログラムのダウンロードによって実行できます。 彼女は次のように見えます

canvas* wt = new canvas; // canvas* wt = new canvas(ui->tab);

wt=new canvas(ui->tab); //ui->tab_5 ,

wt->show(); //

wt->setGeometry(0,210,500,150); //









オブジェクトを作成したら、描画自体、つまりvoid paintEvent(QPaintEvent *)メソッドをプログラムする必要があります。 その核となるのはイベントであり、名前でさえそれについて語っています。 したがって、イベントと同様に個別にプログラムされます。 GUIオブジェクトにアクセスするのが便利であるため、メインイベントファイルでプログラムすることもお勧めします。 ここではすべてが簡単です:

void canvas::paintEvent(QPaintEvent *)

{

QPainter img(this);

img.drawLine(0,0,150,75); /* drawLine(0,0,150,75) , QPainter. */

}








All Articles