繁体   English   中英

哪些Qt窗口小部件可用来绘制类似“生活游戏”的应用程序?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM