我的主要看起来像这样:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Window window(&a);
return a.exec();
}
Window类有一个方法move(),如下所示:
void Window::move()
{
const int STEPS_AMOUNT = 10;
const int STEP = 1000;
for (int i = 0; i < STEPS_AMOUNT; i++)
{
for (int j = 0; j < STEP; j++)
{
for (int k = 0; k < SQUARES_AMOUNT; k++)
{
for (int l = 0; l < SQUARES_AMOUNT; l++)
{
int r = qrand() % 2;
if (r == 0)
r = -1;
board[k][l] = r;
}
}
QApplication::processEvents(QEventLoop::AllEvents);
app->processEvents(QEventLoop::AllEvents);
}
}
}
而我每次都想画我的电路板&#34; j&#34;增加。 为此,我创建了这个方法:
void Window::paintEvent(QPaintEvent *e)
{
Q_UNUSED(e);
for (int k = 0; k < SQUARES_AMOUNT; k++)
for (int l = 0; l < SQUARES_AMOUNT; l++)
{
if (board[k][l] == 1)
draw(k, l);
}
}
我想到了这两行之一:
QApplication::processEvents(QEventLoop::AllEvents);
app->processEvents(QEventLoop::AllEvents);
将根据processEvents():
的定义工作根据以下内容处理调用线程的所有挂起事件 指定的标志,直到没有更多的事件要处理。
但它没有用。怎么办?我不想用时间步更新GUI。