如何使用usleep()设置背景?

时间:2017-10-03 13:48:18

标签: c++ qt qt4 qt4.8

我用两种不同的背景调用背景功能两次。我设置usleep(1000)但不起作用。我的系统是linux,我运行 Qt 4.8

的main.cpp

MainWindow w;
w.setBg('A');
usleep(1000);
w.setBg('B');

在mainwindow.cpp中,setBg(char c) switch可在两个背景之间进行选择。

如何使用switch拨打第一个usleep,然后切换到另一个?

我应该重新加载我的小部件吗?

1 个答案:

答案 0 :(得分:2)

阻止GUI内部循环的任务对于这类任务是不正确的,因为在你的情况下它是usleep,建议使用QTimer,如下所示:

/*Qt5*/
MainWindow w;
w.setBg('A');
w.show();

QTimer::singleShot(1 /*in ms*/, [&w](){
    w.setBg('B');
});

/*Qt4*/
/*on MainWindow*/

private slots:
    void mySlot(){
        setBg('B');
    }
/*constructor*/
    QTimer::singleShot(1000, this, SLOT(mySlot()));