为什么QT进度条的最大值限制在99%
why QT progressbar maximum value is limited to 99%?
我已经开始学习QT编程,我正在练习基本的信号和插槽编程,我写了以下代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->progressBar->setValue(1);
ui->progressBar->setRange(0,100);
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),
ui->progressBar,SLOT(setValue(int)));
}
MainWindow::~MainWindow()
{
delete ui;
}
问题是当我移动水平滑块到其最大值时,进度条显示99% max的值。不是100%。是否在QT中显示默认值?还是我在代码中犯了什么错误?请帮助。由于
正如paulm的评论中提到的,文档声明QAbstractSlider的默认范围为0-99。使用这个滑块,你永远也达不到100。
你可以通过在你的MainWindow
构造函数中设置QProgressBar的范围来匹配你的滑块来确认这一点:(编辑完整代码)
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
/* naive way */
//ui->progressBar->setValue(1);
//ui->progressBar->setRange(0,100);
/* "correct" way - note that I set the range FIRST */
ui->progressBar->setRange(ui->horizontalSlider->minimum(),
ui->horizontalSlider->maximum());
ui->progressBar->setValue(ui->horizontalSlider->value()); //initialize the progress bar to slider's initial value
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),
ui->progressBar,SLOT(setValue(int)));
}
你应该设置与进度条相对应的滑块属性。
我的意思是,在滑块中使用setMinimum
和setMaximum
,滑块的最大值将进度条设置为100%
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 使用指针从C++中的数组中获取最大值
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 在二维数组中查找最小值和最大值?
- 整数溢出,最大值为 pow(10,19)
- 以C++递归方式查找向量中的最大值
- C++ - 如何在结构向量中找到结构体一个成员的最大值?
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- C++ 函数,用于查找传入的 N 个数字的平均值、总和、最小值和最大值
- 我的 If Else 语句无法在向量 (C++) 中提供最大值
- 如何使用可变参数模板类使用模板元编程获得最大值
- C++不同的最小最大值实现
- Vec3b:r/g/b 颜色的最大值为 254,而不是 255
- CUDA - 将 float3 数组的 (x,y,z) 分量的最小值/最大值分开?
- 是否可以将无符号 int 的最大值转换为 int 并将结果转换为 -1?
- 查找包含 N 个元素的数组的最小值和最大值
- 井字游戏具有奇怪行为的最小最大值算法(C++)
- 为什么QT进度条的最大值限制在99%
- Qt Creator的智能感知认为最小值和最大值是定义的,即使它们不是