QT 进度条QProgressBar

1、进度对话框的使用方法有两种:模态方法和非模态方法。

模态方式的使用比较简单,但必须使用processEvent()使事件循环保持正常进行状态,保证不会堵塞。
非模态方式,需要通过QTime实现定时设置进度条的值。

2、标准进度条

包含一个进度显示条、一个取消按钮和一个标签

Process方式

m_ProgressBatLevel = new QProgressBar(this);
m_ProgressBatLevel->setOrientation(Qt::Horizontal);						// 显示方向 Horizontal 水平 Vertical 垂直
m_ProgressBatLevel->setFixedWidth(350);
m_ProgressBatLevel->setMinimum(56);
m_ProgressBatLevel->setMaximum(70);
m_ProgressBatLevel->setValue(70);
m_ProgressBatLevel->setStyleSheet(" QProgressBar{ border: none; color: white; text-align: center; background: rgb(68, 69, 73); }"
		" QProgressBar::chunk{border: none;background: rgb(0, 160, 230);}");
double dProgress = (m_ProgressBatLevel->value() - m_ProgressBatLevel->minimum()) * 100.0
		/ (m_ProgressBatLevel->maximum() - m_ProgressBatLevel->minimum());
m_ProgressBatLevel->setFormat(QString::fromLocal8Bit("%1%").arg(QString::number(dProgress, 'f', 1)));//  设置当前进度条状态
m_ProgressBatLevel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);                                                       //  对齐方式
//m_ProgressBatLevel->setInvertedAppearance(true);                                                                                  //  反方向

QProgressDialog 方式

//创建一个进度对话框
QProgressDialog *progressDialog=new QProgressDialog(this);
QFont font("ZYSong18030",12);
progressDialog->setFont(font);
progressDialog->setWindowModality(Qt::WindowModal);                // 设置模态
progressDialog->setMinimumDuration(5);                             // 对话框需要等待的时间
progressDialog->setWindowTitle(tr("Please Wait"));                 // 对话框的窗口标题
progressDialog->setLabelText(tr("Copying..."));                    // 进度对话框的显示文字信息
progressDialog->setCancelButtonText(tr("Cancel"));                 // 进度条对话框的按钮的显示文字
progressDialog->setRange(0,num);                                   // 设置进度对话框的步进范围
for(int i=1;i<num+1;i++)
{
     progressDialog->setValue(i);	
     if(progressDialog->wasCanceled())
          return;
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我将根据您的要求为您提供有关自定义Qt进度条代码的详细回答。 在Qt中,您可以自定义进度条的外观和行为。以下是一些代码示例,演示如何创建自定义Qt进度条。 1. 创建自定义进度条类 在Qt中,您可以通过创建自定义进度条类来实现自定义进度条。以下是创建自定义进度条类的示例代码: ```cpp class MyProgressBar : public QProgressBar { public: MyProgressBar(QWidget *parent = 0); protected: virtual void paintEvent(QPaintEvent *event); }; ``` 在这个示例中,我们创建了一个名为 MyProgressBar 的类,它继承自 Qt 的 QProgressBar 类。我们重写了 paintEvent 函数,以便重绘进度条的外观。 2. 重写 paintEvent 函数 以下是一个示例代码,演示如何在自定义进度条中重写 paintEvent 函数: ```cpp void MyProgressBar::paintEvent(QPaintEvent *event) { QProgressBar::paintEvent(event); QPainter painter(this); QRect rect = QRect(0, 0, width(), height()); painter.fillRect(rect, Qt::gray); painter.fillRect(rect.adjusted(1, 1, -1, -1), Qt::white); painter.fillRect(rect.adjusted(1, 1, -1, -1), Qt::blue); } ``` 在这个示例中,我们首先调用 QProgressBar 类的 paintEvent 函数。然后,我们创建一个 QPainter 对象,并使用它绘制进度条。我们首先绘制灰色背景,然后绘制白色边框,最后绘制蓝色进度条。 3. 使用自定义进度条 在您创建了自定义进度条类之后,您可以将其用作常规进度条。以下是一个示例代码,演示如何在 Qt 中使用自定义进度条类: ```cpp MyProgressBar *myProgressBar = new MyProgressBar(this); myProgressBar->setRange(0, 100); myProgressBar->setValue(50); ``` 在这个示例中,我们首先创建了一个 MyProgressBar 类的实例,然后设置了进度条的范围和当前值。 总结 以上是关于如何在 Qt 中创建自定义进度条的示例代码。您可以根据您的需求修改这些示例代码,以便创建出符合您想要的外观和行为的自定义进度条
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值