使用qt creator在5秒后删除图像

时间:2013-08-26 13:53:15

标签: qt

我使用qt creator C ++加载了一个图像:

inputImg=new QImage("C:/Bimap/HUD1.bmp")

并且可以在窗口看到。我希望在5秒后删除此图像并加载另一张图像。

有可能吗?谢谢你的回答。

2 个答案:

答案 0 :(得分:2)

你需要做这样的事情(例如在MainWindow中):

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

    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(update()));
    timer->start(5000);

    index = 0;

    flag = false;
}
void MainWindow::update()
{
     if(flag)
         inputImg=new QImage("C:/Bimap/HUD1.bmp");
     else
         inputImg=new QImage("C:/Bimap/speed.bmp");
     flag = !flag;



}

答案 1 :(得分:0)

在构造函数中分配图像(或至少只分配一次),然后使用索引选择它们。
我还添加了一个numImages变量,这样您就可以旋转两个以上的图像。

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

    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(update()));
    timer->start(5000);

    index = 0;
    numImages = 2;

    inputImages[0] = new QImage("C:/Bimap/HUD1.bmp");
    inputImages[1] = new QImage("C:/Bimap/speed.bmp");
}
void MainWindow::update()
{
    showImage(inputImages[index]);
    index = ++index % numImages;
}