[英]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.