logplus/BaseFun/src/DepthProgress.cpp

321 lines
7.8 KiB
C++
Raw Normal View History

2025-10-29 17:23:30 +08:00
#include "DepthProgress.h"
#include <QApplication>
#include "geometryutils.h"
DepthProgress::DepthProgress(){
progerssBar=NULL;
label=NULL;
progerssBar = new QProgressBar;
label= new QLabel;
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
m_Name="";//notifyMsg;
progerssBar->setMaximumWidth(200);
progerssBar->setFixedWidth(200);
label->setFixedWidth(300);
// ::GetStatusBar()->addPermanentWidget(label);
// ::GetStatusBar()->addPermanentWidget(progerssBar,1);
}
DepthProgress::~DepthProgress()
{
if(progerssBar){
delete progerssBar;
progerssBar=NULL;
}
if(label){
delete label;
label=NULL;
}
// if(SystemExiting()) {
// progerssBar=NULL;
// label=NULL;
// return;//特殊处理 目前各个模块退出时系统已经释放了progressbar
// }
if(progerssBar) {
progerssBar=NULL;
label=NULL;
}
}
bool DepthProgress::CreatProgress(float sdep,float edep,const char* notifyMsg)
{
if(progerssBar==NULL) {
progerssBar = new QProgressBar;
label= new QLabel;
m_Name="";//notifyMsg;
progerssBar->setMaximumWidth(200);
progerssBar->setFixedWidth(200);
label->setFixedWidth(300);
label->setAlignment(Qt::AlignRight);
// ::GetStatusBar()->addPermanentWidget(label);
// ::GetStatusBar()->addPermanentWidget(progerssBar,1);
}
progerssBar->setRange(sdep,edep);
m_Name=notifyMsg;
return true;
}
bool DepthProgress::SetDepth(float sdep)
{
if(!progerssBar||!label) return false;
progerssBar->setValue(sdep);
label->setText(m_Name);
QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
return true;
}
bool DepthProgress::CheckCancle()
{
return false;
}
bool DepthProgress::DelProgress()
{
if(progerssBar){
delete progerssBar;
progerssBar=NULL;
}
if(label){
delete label;
label=NULL;
}
// if(SystemExiting()) {
// progerssBar=NULL;
// label=NULL;
// return true;//特殊处理 目前各个模块退出时系统已经释放了progressbar
// }
if(progerssBar) {
progerssBar=NULL;
label=NULL;
}
return true;
}
bool DepthProgress::DelProgress1()
{
if(progerssBar){
delete progerssBar;
progerssBar=NULL;
}
if(label){
delete label;
label=NULL;
}
// if(SystemExiting()) {
// progerssBar=NULL;
// label=NULL;
// return true;//特殊处理 目前各个模块退出时系统已经释放了progressbar
// }
if(progerssBar) {
progerssBar=NULL;
label=NULL;
}
return true;
}
void DepthProgress::SetShowName(const char * Name)
{
m_Name=Name;
}
DiDepthProgress::DiDepthProgress()
{
m_Name.clear();
progerssBarList.clear();
labelList.clear();
/*
//0
QProgressBar *progerssBar = new QProgressBar;
progerssBar->setFixedWidth(200);
progerssBarList.push_back(progerssBar);
QLabel *label= new QLabel;
label->setFixedWidth(300);
label->setObjectName("ProgressBarHint");
label->setAlignment(Qt::AlignRight);
labelList.push_back(label);
::GetStatusBar()->addPermanentWidget(label);
::GetStatusBar()->addPermanentWidget(progerssBar);
label->setMaximumWidth(300);
progerssBar->setMaximumWidth(200);
label->setVisible(false);
progerssBar->setValue(false);
//////////////////////
//1
progerssBar = new QProgressBar;
progerssBar->setFixedWidth(300);
progerssBarList.push_back(progerssBar);
label= new QLabel;
label->setFixedWidth(300);
label->setObjectName("ProgressBarHint");
label->setAlignment(Qt::AlignRight);
labelList.push_back(label);
::GetStatusBar()->addPermanentWidget(label);
::GetStatusBar()->addPermanentWidget(progerssBar);
label->setMaximumWidth(300);
progerssBar->setMaximumWidth(200);
label->setVisible(false);
progerssBar->setValue(false);
*/
}
DiDepthProgress::~DiDepthProgress()
{
foreach(QProgressBar *progerssBar,progerssBarList) {
delete progerssBar;
}
foreach(QLabel *label,labelList) {
delete label;
}
progerssBarList.clear();
labelList.clear();
// if(SystemExiting()) return;//特殊处理 目前各个模块退出时系统已经释放了progressbar
}
bool DiDepthProgress::SetRange(float sdep,float edep,int Index)
{
if(progerssBarList.size()>Index) {
QLabel *label=labelList[Index];
QProgressBar *progerssBar=progerssBarList[Index];
progerssBar->setRange(sdep,edep);
if(!label->isVisible()) {
label->setVisible(true);
progerssBar->setValue(true);
}
return true;
}
return false;
}
bool DiDepthProgress::CreatProgress(float sdep,float edep,const char* notifyMsg,int Index)
{
if(progerssBarList.size()<=Index) {
for(int i=progerssBarList.size();i<=Index;i++){
QProgressBar*progerssBar = new QProgressBar;
progerssBar->setFixedWidth(200);
progerssBarList.push_back(progerssBar);
QLabel *label= new QLabel;
label->setFixedWidth(300);
label->setObjectName("ProgressBarHint");
label->setAlignment(Qt::AlignRight);
labelList.push_back(label);
// ::GetStatusBar()->addPermanentWidget(label);
// ::GetStatusBar()->addPermanentWidget(progerssBar);
label->setMaximumWidth(300);
progerssBar->setMaximumWidth(200);
if(i<Index) {
progerssBar->setVisible(false);
label->setVisible(false);
}
}
}
else {
QProgressBar *progerssBar=progerssBarList[Index];
QLabel *label=labelList[Index];
progerssBar->setVisible(true);
label->setVisible(true);
}
progerssBarList[Index]->setRange(sdep,edep);
SetShowName(notifyMsg,Index);
return true;
}
bool DiDepthProgress::CreatProgress(float sdep,float edep,const char* notifyMsg)
{
if(progerssBarList.size()<=0) {
QProgressBar*progerssBar = new QProgressBar;
progerssBar->setFixedWidth(200);
progerssBarList.push_back(progerssBar);
QLabel *label= new QLabel;
label->setFixedWidth(300);
label->setObjectName("ProgressBarHint");
label->setAlignment(Qt::AlignRight);
labelList.push_back(label);
// ::GetStatusBar()->addPermanentWidget(label);
// ::GetStatusBar()->addPermanentWidget(progerssBar);
label->setMaximumWidth(300);
progerssBar->setMaximumWidth(200);
}
/*
if(progerssBarList.size()<=1) {
QProgressBar*progerssBar = new QProgressBar;
progerssBar->setFixedWidth(200);
progerssBarList.push_back(progerssBar);
QLabel *label= new QLabel;
label->setFixedWidth(200);
label->setObjectName("ProgressBarHint");
label->setAlignment(Qt::AlignRight);
labelList.push_back(label);
::GetStatusBar()->addPermanentWidget(label);
::GetStatusBar()->addPermanentWidget(progerssBar);
label->setMaximumWidth(300);
progerssBar->setMaximumWidth(200);
}
*/
SetRange(sdep,edep,0);
// SetRange(sdep,edep,1);
SetShowName(notifyMsg,0);
// SetShowName(notifyMsg,1);
return true;
}
bool DiDepthProgress::SetDepth(float sdep,int Index)
{
if(progerssBarList.size()>Index) {
QProgressBar *progerssBar=progerssBarList[Index];
progerssBar->setValue(sdep);
QLabel *label=labelList[Index];
label->setText(m_Name[Index]);
QApplication::processEvents();
}
return true;
}
bool DiDepthProgress::CheckCancle(){return false;}
bool DiDepthProgress::DelProgress(int Index)
{
if(progerssBarList.size()>Index) {
if(Index<0) return false;
QProgressBar *progerssBar=progerssBarList[Index];
QLabel *label=labelList[Index];
// progerssBarList.removeAt(Index);
// labelList.removeAt(Index);
progerssBar->setVisible(false);
label->setVisible(false);
//delete progerssBar;
//delete label;
}
return true;
}
bool DiDepthProgress::DelProgress()
{
int count=progerssBarList.size();
for(int i=0;i<count;i++) {
QProgressBar *progerssBar=progerssBarList[0];
QLabel *label=labelList[0];
progerssBarList.removeAt(0);
labelList.removeAt(0);
delete progerssBar;
delete label;
}
return true;
}
void DiDepthProgress::SetShowName(const char * Name,int Index)
{
if(progerssBarList.size()<=Index) return;
if(m_Name.size()<Index+1) {
int i0=m_Name.size();
for(int i=i0;i<Index+1;i++) m_Name.push_back("");
}
m_Name[Index]=Name;
if(progerssBarList.size()>Index) {
QLabel *label=labelList[Index];
if(label) label->setText(Name);
if(!label->isVisible()) {
label->setVisible(true);
progerssBarList[Index]->setValue(true);
}
}
}