您可以使用QCoreApplication::processEvents()函数来强制处理Qt事件队列,以便在调用msleep()函数之前立即显示setStyleSheet()的效果。以下是一个示例代码:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel label("Hello World!");
label.setStyleSheet("color: red; font-size: 20px;");
label.show();
QCoreApplication::processEvents(); // 处理事件队列
// 延迟1秒钟
int delayTime = 1000;
#ifdef Q_OS_WIN
Sleep(delayTime);
#else
usleep(delayTime * 1000);
#endif
return a.exec();
}
在上面的代码中,我们在调用msleep()函数之前添加了一行QCoreApplication::processEvents()函数来处理事件队列。这将确保setStyleSheet()函数的效果被立即显示出来。
请注意,在Windows平台上,我们使用Sleep()函数来延迟执行。而在Linux和macOS上,我们使用usleep()函数来实现相同的效果。