如何使用 usleep() 设置背景?
How can I set the background with a usleep()?
我在两个不同的背景下调用了两次背景函数。我设置 usleep(1000)
但不起作用。我的系统是 linux 我是 运行 Qt 4.8.
main.cpp
MainWindow w;
w.setBg('A');
usleep(1000);
w.setBg('B');
在mainwindow.cpp两个背景之间有setBg(char c)
和switch
到select。
如何用 usleep
调用第一个 switch
然后切换到另一个?
我应该重新加载我的小部件吗?
阻塞 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()));
我在两个不同的背景下调用了两次背景函数。我设置 usleep(1000)
但不起作用。我的系统是 linux 我是 运行 Qt 4.8.
main.cpp
MainWindow w;
w.setBg('A');
usleep(1000);
w.setBg('B');
在mainwindow.cpp两个背景之间有setBg(char c)
和switch
到select。
如何用 usleep
调用第一个 switch
然后切换到另一个?
我应该重新加载我的小部件吗?
阻塞 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()));