- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以我想要的只是用计时器增加进度条。但不知何故,它增加了进度条超过它应该的。
主窗口.h :
Class MainWindow {
//...
private slots:
//...
void update();
private:
Ui::MainWindow *ui;
QTimer *timer;
unsigned int counter;
};
主窗口.cpp :
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
timer = new QTimer(this);
counter = 0;
connect(timer, SIGNAL(timeout()), this, SLOT( update() ) );
}
void MainWindow::on_actionStart_triggered()
{
if( ui->txtTime->text().isEmpty() || (ui->txtTime->text().toInt() == 0) )
{
QMessageBox::warning(this, "Error", "Could not start the timer.", QMessageBox::Ok);
return;
}
ui->cmdStart->setEnabled(false);
timer->start(ui->txtTime->text().toInt() * 60000 / 60);
}
void MainWindow::update()
{
counter++;
ui->progressBar->setValue( counter ); //Should be incremented by one
if( ui->progressBar->value() == 60 )
{
timer->stop();
Phonon::MediaObject *music = Phonon::createPlayer(Phonon::MusicCategory,
Phonon::MediaSource( ":/Music/" + ui->chkMusic->currentText() ));
music->play(); //Playing music
delete timer;
}
}
我在调试器中注意到进度条的值为 6,而计数器的值为 4。它也先递增 1,然后递增 2,然后再次递增 2,然后递增 1,依此类推。我做错了什么?!
编辑:我认为这是进度条。我将操作更改为:
void MainWindow::on_actionStart_triggered()
{
if( ui->txtTime->text().isEmpty() || (ui->txtTime->text().toInt() == 0) )
{
QMessageBox::warning(this, "Error", "Could not start the timer.", QMessageBox::Ok);
return;
}
// ui->cmdStart->setEnabled(false);
// ui->progressBar->setMaximum( ui->txtTime->text().toInt() * 60 );
// timer->start( 1000 );
counter++;
ui->progressBar->setValue( counter );
}
因为我把它注释掉了,所以不会启动任何计时器。总是当我单击操作按钮时,它会将进度条递增 1,然后递增 2,然后再次递增 2,然后递增 1。相同的行为。所以这不是计时器!
最佳答案
我认为您不匹配 QProgressBar 值(介于 minimum() 和 maximum() 之间的整数)和显示的进度百分比,大致为 (value-min)/(max-min)
下限(1/60*100) = 1%
下限(2/60*100) = 3%
下限(3/60*100) = 5%
下限(4/60*100) = 6%
因此,将 value() 递增 1 会按顺序增加百分比:1%、2%、2%、1%...
如果要在计数器到60的时候显示60%,需要setMaximum(100)
我说得对吗?
关于c++ - Qt Progressbar 增加超过它应该的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17410226/
我的应用程序中有一个 ProgressBar 小部件,无论我做什么,它总是显示为粗橙色(2.x 样式)而不是细蓝色(4.x 样式) . 项目构建目标设置为 Google API 4.0.3(API 级
private static ProgressDialog pDialog; pDialog = new ProgressDialog(activity); pDialog.setIndetermin
我试图让 TalkBack 阅读进度条上的进度,但运气不佳。关于如何获取该信息以便 TalkBack 可以说出来的任何想法。 谢谢 公共(public)类 MainActivity 扩展 Activi
进度条总是返回null public void calcola(View view) { final Dialog myDialog = new Dialog(this);
我正在尝试用选取框样式测试进度条,但没有成功 private void Form1_Load(object sender, EventArgs e) { Applica
我使用以下 Ruby 片段下载 a 8.9MB file . require 'open-uri' require 'net/http' require 'uri' def http_download
我为操作栏按钮尝试了两种不同的进度条样式,通过 refreshMenuItem.setActionView(R.layout.actionbar_indeterminate_progress); ac
每当我输入 fragment 时,我都会看到几秒钟的空白,然后 WebView 中的网页就会出现。 ProgressBar 好像没有显示。 这是我的 XML 文件,用于 WebView 和 Progr
我的包依赖于一个名为 progressbar 的包。有一个bug in progressbar 2.3导致Python>3.3安装失败,因此我安装了latest git repo from this
任何默认的 ProgressBar 都有一个 ClipDrawable 级别,例如,一个绿色的 Drawable 在我的设备上填充灰色背景,在其他设备上填充黄色。 我的问题:当进度小于最大值时,是否可
这是随意的原型(prototype)代码,因此我尝试了我认为应该有效的方法,如果没有,则在谷歌上搜索,然后在仔细阅读类似问题后在这里提问。 我的 Shell 中有以下标记看法:
要在执行查询时显示 ProgressBar,我使用以下代码: if not Query1.Prepared then Query1.Prepare; Query1.Open; ProgressBa
我有三个类,例如 View 、逻辑、 Controller 。 class View{ Progressbutton pb; void start animation(){
我正在用 C#/WPF(.Net 框架 4.0)编写一个应用程序。我遇到的一件事是如何在应用程序非常繁忙时更新控件(如果可能)。我想我只是在努力尝试我在网上找到的东西来让它工作(而且在极少数情况下它会
要在执行查询时显示 ProgressBar,我使用以下代码: if not Query1.Prepared then Query1.Prepare; Query1.Open; ProgressBa
已关闭。此问题不符合 Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 已关闭 3 年前。 奥 git _a
我创建了一个 ping 程序来 ping 5 服务器。如何在进度运行时让进度条运行。当 ping 完成时,进度条将为 100% private void btnGetstatusActionPer
我想在流程完成后在 PrimeFaces 上隐藏一个进度条。我认为没有必要在不工作时显示进度条。 html代码:
我想添加JProgressBar,它将在下载文件的程序中填充。 第三个问题是如何使进度条在 setValue 中添加正确的金额(例如:当它下载最后一个文件时,JPB 将完成)。 请注意,要下载的文件数
给定一个变量 N,反射(reflect)秒数,我想要一个 jQueryUI Progressbar顺利地从空更新到反射(reflect)该时间段内的完成。 换句话说,我想要一个显示进度条的functi
我是一名优秀的程序员,十分优秀!