1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| #include <QApplication> #include <QWidget> #include <QProgressBar> #include <QSlider> #include <QVBoxLayout> #include <QLabel>
void setupProgressBarDemo(QWidget *parent) { QVBoxLayout *layout = new QVBoxLayout(parent);
QLabel *label1 = new QLabel("当前任务进度:", parent); QProgressBar *bar = new QProgressBar(parent); bar->setRange(0, 100); bar->setValue(0);
bar->setFormat("已完成 %p%"); bar->setAlignment(Qt::AlignCenter);
QSlider *slider = new QSlider(Qt::Horizontal, parent); slider->setRange(0, 100);
QObject::connect(slider, &QSlider::valueChanged, [bar](int value) { bar->setValue(value); });
QLabel *label2 = new QLabel("后台扫描中(忙碌模式):", parent); QProgressBar *busyBar = new QProgressBar(parent); busyBar->setRange(0, 0);
layout->addWidget(label1); layout->addWidget(bar); layout->addWidget(new QLabel("拖动下方滑块模拟下载进度:")); layout->addWidget(slider); layout->addSpacing(20); layout->addWidget(label2); layout->addWidget(busyBar); layout->addStretch(); }
int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget w; w.resize(400, 300); setupProgressBarDemo(&w); w.show(); return a.exec(); }
|