1

我有以下问题。

A)我怎样才能通过十进制值增加进度条的值?我试过了

ui->progressBar->setValue(0.5);并使用 while 循环增加了 0.5。但我得到的只是空的进度条。知道为什么吗?

ps:我收到警告“此语句无效”就行了ui->progressBar->setValue(0.5);

B)在制作进度条时,我制作了一个 while 循环,进度条值递增 1 并添加了 Sleep(600),这样进度条就不会很快完成。这不是问题,我的问题是当进度条增加时,我的应用程序滞后了很多。我试着把QCoreApplication::processEvents();我的while循环和我的代码都放在我的代码中,但这没有用。该怎么办?

4

2 回答 2

3

QProgressBar::setValue接受一个int参数。0.5转换为intis 0,就像任何 fule kno 一样。因此,您实际上是在调用setValue (0).

要正确执行此操作,您必须调用setMinimumand setMaximum,然后按适当的因子缩放浮点数。

但我必须承认,我对你的“声明无效”警告感到困惑。您确定吗?

于 2012-09-04T15:32:08.330 回答
1

关于 B),不要在主线程中使用 Sleep。当然,这会使您的应用程序无响应,因为在线程休眠时不会发生重绘或输入事件处理。而是使用一个QTimer连接到一个插槽来增加你的进度条值。

于 2012-09-04T15:54:33.330 回答