代码之家  ›  专栏  ›  技术社区  ›  ereOn

使用什么Qt小部件来绘制一个类似“生命游戏”的应用程序?

  •  2
  • ereOn  · 技术社区  · 15 年前

    我的目标并不复杂:我只需要画单个像素或不同颜色的线,并定期刷新视图。像这样的 Conway's Game of Life .

    我习惯和你一起工作 Qt 但从来没有这样的任务。

    非常感谢。

    3 回复  |  直到 15 年前
        1
  •  2
  •   Ivan    15 年前

    我建议使用“图形视图”框架 http://doc.trolltech.com/4.6/graphicsview.html

    简单地说,对于生命游戏中的生物,创建图形项并为它们设置坐标。没别的了。

        2
  •  1
  •   teukkam    15 年前

    QTableView 实现自己的 QAbstractItemDelegate 绘制单元格。看一看 the Pixelator example .

        3
  •  1
  •   Arnold Spence    15 年前

    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
    

    我的小部件.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