2010-02-18 76 views
1

我在QT中给动画进度条添加动画时遇到问题。问题与QT中的进度条

哪里是在下面的代码错误,我得到持续的进度条,但它不是动画

QApplication a(argc, argv); 

QProgressDialog *dialog = new QProgressDialog(); 


QProgressBar *pbar = new QProgressBar(dialog); 

pbar->setMinimum(0); 
pbar->setMaximum(0); 
pbar->setTextVisible(false); 

QDesktopWidget *desktop = QApplication::desktop(); 
QRect rect = desktop->geometry(); 

pbar->setGeometry(rect.left(),rect.top(),rect.right(),rect.bottom()-300); 

pbar->show(); 


dialog->setBar(pbar); 

dialog->showMaximized(); 
dialog->exec(); 
return a.exec(); 

回答

7

我试图在WinXP该代码使用Qt 4.5.3,它按预期工作。 我不能给你一个解决方案,但我有一个建议: 你并不需要一个QProgressBar设置为QProgressDialog,它已经拥有了自己。

删除QProgressBar的代码,下面的代码与我的机器上的原始代码做同样的事情。

QApplication a(argc, argv); 

QProgressDialog *dialog = new QProgressDialog(); 

dialog->setMinimum(0); 
dialog->setMaximum(0); 

dialog->showMaximized(); 
dialog->exec(); 
return a.exec(); 
+0

嘿,我得到了乌拉圭回合的建议 it..Thanks的事情是...我们的代码也表现得就像上面矿代码.. 在我模拟器即时通讯进度条,与之字形样式..即蓝色..但它的静态..我的意思是它不动.. 模拟器的行为就像只有或什么? – Naruto 2010-02-18 13:39:42

+0

嗯,我从来没有与Symbian的工作,但似乎像somethig模拟器可以做的。你可以尝试在实际的symbian机器上部署它来尝试吗? – erelender 2010-02-18 13:48:50

+0

亚..虐待尝试在移动和告诉你:) 谢谢 – Naruto 2010-02-18 14:00:00

-2

小伙子们,你认为进度条究竟干什么?它应该向用户显示活动正在进行以及当前的进度状态。

您的代码

QProgressDialog *dialog = new QProgressDialog(); 

dialog->setMinimum(0); 

dialog->setMaximum(0); 

将表明,在一定的操作将开始与状态0和当状态(或电流值)达到值... 0将结束,你想一些动画与去?

看到http://doc.trolltech.com/4.6/qprogressdialog.html#details

一个例子基本上你应该创建一个进步与最小和最大值对话框

QProgressDialog *dialog = new QProgressDialog(); 

dialog->setMinimum(0); 

dialog->setMaximum(100); 

然后有实际的进展值更新(例如在触发一个计时器执行槽),以便将它在进度条表示:

void Operation::perform() 
{ 
    dialog->setValue(steps); 
    //... perform one percent of the operation 
    steps++; 
    if (steps > dialog->maximum()) 
     t->stop(); 
} 

一系列更新的,具有逐渐增加的PROGRES s值,会创建你想要的动画效果。

显然与Symbian标注这是纯粹的错误,这是不是在所有的Symbian具体。 Qt 4.x也不是特定的,地狱......它甚至不是Qt特有的,它基本上是一个逻辑问题。 ;)

+0

其实这些天进度条也可以用来表明应用程序仍然在做某些事情,但进度无法估计。这是动画并称为字幕模式(或骑士模式)。将最小值和最大值设置为0在Qt中执行此操作。 – Thirler 2010-02-18 20:50:11

+0

有趣。谢谢你的提示。我在Windows上看到类似的东西,但它没有记录的行为。 – Lucian 2010-02-18 21:02:17

1

如果您使用的是Windows Vista主题(QWindowsVistaStyle),那么存在一个错误,意味着不确定的进度条不会生成动画。我在这里写了这个bug,完成简单的补丁:http://bugreports.qt-project.org/browse/QTBUG-10984

+0

我发现问题的解决方案。 我可以知道你使用的是哪个版本的Qt吗?Qt说问题在Qt 4.6.2中得到解决 – Naruto 2010-05-27 04:42:42

+0

这对我在4.7技术预览中出错了。也许这与你所看到的不同。 – jlarcombe 2010-05-27 10:23:27