2010-12-10 106 views
1

这种情况发生时,我一次添加一个项目(添加一个项目,然后返回到事件循环)。为了说明,我的代码看起来大致是这样的:QListWidget :: addItem给出可怕的闪烁

 
    .................... 
    timer = new QTimer(this); 
    timer->setInterval(0); 
    connect(timer, SIGNAL(timeout()), this, SLOT(onTimeout())); 
    .................... 

void Dialog::onTimeout() 
{ 
    QListWidgetItem* item = new QListWidgetItem; 

    .................... 

    ui->listWidget->addItem(item); 
} 
+0

我的操作系统是Linux(Xubuntu Meerkat) – sashoalm 2010-12-11 17:57:47

回答

0

该代码看起来不错。我在我的本地机器上运行它,并且执行时没有闪烁。你是否正在处理强烈的图形(即使这样,由于Qt定义了超时(0)......等待事件队列完成),这应该是OK?其他代码很可能是罪魁祸首。

+0

感谢您的回复。我忘了提及我在Linux上使用它(准确地说是Xubuntu Meerkat)。这个闪烁可能是一个操作系统特定的问题,谁知道。无论如何,我会尝试在测试项目中自己运行代码,但我没有想到要这么做。 – sashoalm 2010-12-11 17:45:44

+0

这很奇怪,即使是只有这个代码的测试项目也会产生闪烁。我打算给代码,但我不知道如何将它包装在标签中(

没有工作)。 –
                        
                            
    sashoalm
                                2010-12-11 17:53:44
                            
                        
                    

+0

在文本编辑框中(当您编辑您的问题时),您可以选择文本,然后按代码快捷键将其格式化为代码显示。 – GatorGuy 2010-12-14 15:00:55