Qt弹出一个进度条

1.QProgressDialog

	//进度条
	QProgressDialog *t_progressBar= new QProgressDialog(this);
	t_progressBar->setWindowTitle(QString::fromLocal8Bit("解析中.."));
	t_progressBar->setMinimumDuration(5);//如果运行时间太短,可以加上这个
	t_progressBar->setModal(true);//必须加上这个,不设置模型是不会显示的
	t_progressBar->setRange(0,t_checkeFileName.size());
	t_progressBar->show();

2.QProgressBar样式

void CTaskProgressShow::initProgressBarStyle(QProgressBar* progressBar, int finshed, int count)
{
	progressBar->setMinimum(0);
	progressBar->setMaximum(count);
	//设置格式
	progressBar->setFormat("%v/%m");
	progressBar->setValue(finshed);
	progressBar->setAlignment(Qt::AlignHCenter);
	if ( finshed%count == 0 )
	{
		QString s = "QProgressBar {border: 2px solid grey;border-radius: 5px;text-align: center;color:#000000;}QProgressBar::chunk {background-color: #00aa00;}";
		progressBar->setStyleSheet(s);
	}
	else
	{
		QString s = "QProgressBar {border: 2px solid grey;border-radius: 5px;text-align: center;color:#000000;}QProgressBar::chunk {background-color: #ffaa7f;}";
		progressBar->setStyleSheet(s);
	}
	
}

QProgressBar的样式

可见有两部分

QString s1 = "QProgressBar {\
    border: 2px solid grey;\
    border-radius: 5px;\
    text-align: center;\
    color:#ff0000;\
}";
 
QString s2 = "QProgressBar::chunk {\
    background-color: #05B8CC;\
    width: 20px;\
    margin: 0.5px;\
}";

ui->progressBar1->setStyleSheet(s1+s2);


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当程序在执行时,我们可以使用PyQt的QProgressBar类来实现弹出进度条。下面是一个简单的示例代码: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QProgressBar from PyQt5.QtCore import Qt class MainWindow(QMainWindow): def __init__(self): super().__init__() self.progress_bar = QProgressBar(self) # 创建一个进度条对象 self.progress_bar.setGeometry(30, 40, 200, 25) # 设置进度条的位置和大小 self.setWindowTitle("进度条示例") self.setGeometry(300, 300, 280, 170) self.timer = QTimer() # 创建一个定时器 self.timer.timeout.connect(self.update_progress) # 连接定时器的timeout信号和更新进度的槽函数 self.show() def update_progress(self): current_value = self.progress_bar.value() # 获取当前进度条的值 if current_value < 100: self.progress_bar.setValue(current_value + 1) else: self.timer.stop() # 进度已经达到100,停止定时器 def start_progress(self): self.progress_bar.setValue(0) # 将进度条的值设置为0 self.timer.start(100) # 每隔100毫秒触发一次timeout信号,来更新进度条的值 if __name__ == "__main__": app = QApplication([]) window = MainWindow() window.start_progress() app.exec_() ``` 在这个示例,我们创建了一个名为MainWindow的窗口类,其包含一个QProgressBar类的实例对象progress_bar,用于显示进度条。在start_progress方法,我们首先将进度条的值设置为0,然后使用定时器timer的start方法来启动定时器,并指定定时器每隔100毫秒触发一次timeout信号。在update_progress方法,我们通过调用进度条的setValue方法将进度条的值更新为当前值+1,实现进度条的增加效果。当进度条的值达到100时,我们停止定时器的运行。 最后,我们创建了一个应用程序QApplication的实例app,并创建了MainWindow的实例对象window,并调用它的start_progress方法来开始显示进度条。最后,我们通过调用app的exec_方法来运行应用程序,并保持其处于运行状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值