LINUX.ORG.RU

Подвигать спрайт в Qt


0

0

Нужно написать простое приложение: спрайт движется в окне. Цели у меня учебные то есть разобраться. Пока понял из асситанта, что поможет QCanvas, QCanvasSprite и QTimer. Но заставить работать их не могу.

Разясните популярно. Или ссылку дайте на простенькую статью.


Спасибо.

Кстатити спрайт так рисовал:

int main(int argc, char* argv[]){
QApplication a(argc,argv);
QCanvas canvas(500,500);
QCanvasView m(&canvas);
QCanvasSprite *t1 = new QCanvasSprite(
new QCanvasPixmapArray( "sprite.png" ),
&canvas
);
t1->setX(3);
t1->setY(2);
t1->show();
canvas.update();
t1->move(100,100);
a.setMainWidget(&m);
m.show();
return a.exec();
}

А загнать в свой класс не смог ;(

anonymous

Может здесь кто-то что-то подскажет?

Свой класс писал так

#ifndef POLE
#define POLE

#include <qwidget.h>
#include <qcanvas.h>


class Pole: public QWidget {
Q_OBJECT
private:
int x;
int y;
public:
Pole( QWidget *parent, const char *name):
QWidget(parent,name)
{
QCanvas canvas(this);
canvas.resize(400,400);
QCanvasView m(&canvas,this);

QCanvasSprite *t1 = new QCanvasSprite(
new QCanvasPixmapArray( "srite.png" ),
&canvas
);
x=y=20;
t1->setX( x );
t1->setY( y );
t1->show();
}
~Pole(){};
public slots:
void move(){};
};

#endif

Но в окне не увидел картинки sprite.png. Где же ошибка?

anonymous
()
Ответ на: комментарий от anonymous

если увидел серый квадратик, за место картинки.
То скорее всего файлик не нашелся.
попробуй указать полный путь к файлу или относительный

anonymous
()
Ответ на: комментарий от anonymous

Спасибо за ответ.

Да не с путем все нормально /но на всякий проверил/

Проблема в чем, когда в main() вызываю QCanvas ... (первый код), то все нормально, но когда в своем классе (второй код) то не работает. А ведь для использования таймера нужен свой класс.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.