Qt:在小部件上显示图像

时间:2010-10-02 17:08:46

标签: image qt jpeg

我想要显示一张汽车照片 加载后,用户可以通过按键盘上的键来移动汽车 当他按下“向上箭头”时,汽车会向上移动 我应该使用哪种方法来显示照片。 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 个答案:

答案 0 :(得分:10)

听起来有点像你试图用Qt布局系统编写游戏代码。这不是特别推荐的。

在上面的代码中,您已将图像放在QLabel image上,但您尚未将QLabel放在主窗口上。最简单的方法是将this作为第一个参数传递给QLabel构造函数。

如果这种类型的动画是应用程序的重点,我建议使用OpenGL和corresponding classgraphics view系统。

答案 1 :(得分:1)

如果您想使用Qt编写2D游戏 - 请查看QPainter类。例如,如果你想让一个小部件代表你的游戏窗口,你应该从QWidget或它的子类继承它,并重新实现paintEvent(QPaintEvent * event)函数来执行你的绘图。在Qt示例中,您可以使用QPainter找到许多有用的代码。