Какие виджеты Qt использовать для рисования приложения, похожего на игру в жизнь? - PullRequest
2 голосов
/ 04 сентября 2010

Для эксперимента я хотел бы создать простое графическое приложение.

Моя цель не сложна: мне просто нужно рисовать отдельные пиксели или линии разных цветов и регулярно обновлять вид. Что-то вроде Игра жизни Конвея .

Я привык работать с Qt, но никогда для такого рода задач.

Какие виджеты / объекты я должен использовать, чтобы начать? Что-нибудь особенное, что я должен знать / делать?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 04 сентября 2010

Я бы предложил "графический вид" фреймворка http://doc.trolltech.com/4.6/graphicsview.html

Он чрезвычайно мощный, намного больше, чем нужно.

Просто для существ в игрежизни, создавать графические элементы и устанавливать для них координаты.Ничего больше.

1 голос
/ 04 сентября 2010

Для простого пиксельного и линейного рисования может потребоваться реализовать базовый подкласс 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

1 голос
/ 04 сентября 2010

Используйте QTableView, где вы реализуете свой собственный подкласс QAbstractItemDelegate, чтобы нарисовать ячейки. Взгляните на пример Pixelator .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...