Qt: показать изображение на виджете - PullRequest
8 голосов
/ 02 октября 2010

Я хочу отобразить фотографию автомобиля.
после загрузки пользователь может переместить автомобиль, нажав клавиши на клавиатуре.
Когда он нажмет "стрелку вверх", автомобиль будет двигаться вверх.
, что следует сделатьЯ использую, чтобы показать фотографию.Qlabel.setpixmap ??
Приведенный ниже код показывает изображение в новом виджете, но я хочу показать его на странице главного окна.
Что мне делать?
Спасибо

void MainWindow::showIt()
{
    QLabel *image = new QLabel();
    image->setPixmap( QPixmap( "car.jpg" ) );
    image->show();
    update();
}

MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
{
    ui->setupUi(this);
   showIt();
}

Ответы [ 2 ]

10 голосов
/ 02 октября 2010

Звучит так, будто вы пытаетесь написать игровой код с помощью системы разметки Qt.Это не особенно рекомендуется.

В приведенном выше коде вы поместили изображение в QLabel image, но не поместили этот QLabel в главное окно.Самый простой способ сделать это - просто передать this в качестве первого аргумента в конструктор QLabel.

Если этот тип анимации является основной целью приложения, я бы рекомендовал либо использовать OpenGL, либо соответствующий класс или графическое представление .

1 голос
/ 11 октября 2010

Если вы хотите написать 2D-игру, используя Qt - взгляните на класс QPainter. Например, если вы хотите иметь один виджет, представляющий ваше игровое окно, вы должны наследовать его от QWidget или его функции подкласса и переопределения paintEvent (QPaintEvent * event) для выполнения вашего рисования. В примерах Qt вы можете найти много полезного кода для рисования с использованием QPainter.

...