[英]What Qt widgets to use to draw a “game-of-life”-like application?
為了進行實驗,我想創建一個簡單的圖形應用程序。
我的目標並不復雜:我只需要繪制單個像素或不同顏色的線,並定期刷新視圖即可。 像是Conway的《人生游戲》 。
我曾經和Qt
一起工作過,但是從來沒有做過這樣的事情。
我應該使用哪些小部件/對象開始使用? 我有什么特別的事情要知道嗎?
謝謝。
我建議使用“圖形視圖”框架http://doc.trolltech.com/4.6/graphicsview.html
它非常強大,遠遠超出了您的需要。
簡單來說,對於生命游戲中的生物,創建圖形項並為其設置坐標。 而已。
使用QTableView
在其中實現自己的QAbstractItemDelegate
子類以繪制單元格。 看一下Pixelator示例 。
對於簡單的像素和線條畫,您可能需要實現基本的QWidget子類並實現paintEvent()。 在那兒你會畫畫
MyWidget.h:
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
protected:
void paintEvent(QPaintEvent *event);
};
#endif
MyWidget.cpp:
#include <QtGui>
#include "MyWidget.h"
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
}
void MyWidget::MyWidget(QPaintEvent * /* event */)
{
QPainter painter(this);
// Then do things like..
painter.drawLine(...
painter.drawRect(...
}
您可以在此處找到更完整的示例: http : //doc.qt.nokia.com/4.6/painting-basicdrawing.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.