#include "DepthProgress.h" #include #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(isetVisible(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;iIndex) { QLabel *label=labelList[Index]; if(label) label->setText(Name); if(!label->isVisible()) { label->setVisible(true); progerssBarList[Index]->setValue(true); } } }