You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
2.9 KiB
C++
124 lines
2.9 KiB
C++
#include "ProgressView.h"
|
|
#include "qprogressdialog.h"
|
|
#include "qicon.h"
|
|
#include "qfiledialog.h"
|
|
#include "qcoreapplication.h"
|
|
|
|
#pragma execution_character_set("utf-8")
|
|
/*进度条类*/
|
|
ProgressView::ProgressView(QWidget* parent)
|
|
{
|
|
nCancel = false;
|
|
m_pProgressDialog = new QProgressDialog(parent);
|
|
connect(m_pProgressDialog, SIGNAL(canceled()), this, SIGNAL(cancel()));
|
|
|
|
m_pProgressDialog->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
|
m_pProgressDialog->setWindowIcon(QIcon(":/image/leaper"));
|
|
m_pProgressDialog->setWindowModality(Qt::ApplicationModal);
|
|
m_pProgressDialog->setAttribute(Qt::WA_ShowModal, true);
|
|
}
|
|
|
|
ProgressView::ProgressView(QString strTitle, QString strLabel, int nMax, QString strIcon)
|
|
{
|
|
nCancel = false;
|
|
m_pProgressDialog = new QProgressDialog;
|
|
m_pProgressDialog->setWindowFlags(Qt::Dialog);
|
|
connect(m_pProgressDialog, SIGNAL(canceled()), this, SIGNAL(cancel()));
|
|
m_pProgressDialog->hide();
|
|
show(strTitle, strLabel, nMax, strIcon);
|
|
}
|
|
|
|
|
|
ProgressView::~ProgressView()
|
|
{
|
|
finish();
|
|
if (m_pProgressDialog){
|
|
bool bhide= m_pProgressDialog->isHidden();
|
|
if (!bhide){
|
|
m_pProgressDialog->close();
|
|
m_pProgressDialog->deleteLater();
|
|
}
|
|
delete m_pProgressDialog;
|
|
m_pProgressDialog = NULL;
|
|
}
|
|
}
|
|
|
|
bool ProgressView::show(QString strTitle, QString strLabel, int nMax, QString strIcon)
|
|
{
|
|
|
|
|
|
m_pProgressDialog->setWindowTitle(strTitle);
|
|
m_pProgressDialog->setWindowIcon(QIcon(strIcon));
|
|
m_pProgressDialog->setLabelText(strLabel);
|
|
m_pProgressDialog->setRange(0, nMax);
|
|
if (nCancel==false)
|
|
m_pProgressDialog->setCancelButton(0);
|
|
m_pProgressDialog->setCancelButtonText(tr("取消"));
|
|
m_pProgressDialog->show();
|
|
return true;
|
|
}
|
|
|
|
bool ProgressView::setValue(int nValue)
|
|
{
|
|
m_pProgressDialog->setValue(nValue);
|
|
qApp->processEvents();
|
|
return true;
|
|
}
|
|
|
|
bool ProgressView::finish()
|
|
{
|
|
if (m_pProgressDialog) {
|
|
//m_pProgressDialog->finished(1);
|
|
if (!m_pProgressDialog->isHidden())
|
|
{
|
|
m_pProgressDialog->close();
|
|
}
|
|
// m_pProgressDialog->deleteLater();
|
|
// m_pProgressDialog = NULL;
|
|
}
|
|
//qApp->processEvents();
|
|
return true;
|
|
}
|
|
|
|
bool ProgressView::setTitle(QString strTitle)
|
|
{
|
|
if (m_pProgressDialog) {
|
|
m_pProgressDialog->setWindowTitle(strTitle);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
void ProgressView::setLabel(QString strText)
|
|
{
|
|
if (m_pProgressDialog) {
|
|
m_pProgressDialog->setLabelText(strText);
|
|
}
|
|
}
|
|
|
|
void ProgressView::setRange(int nMax, int nMin /*= 0*/)
|
|
{
|
|
if (m_pProgressDialog) {
|
|
m_pProgressDialog->setRange(nMin, nMax);
|
|
}
|
|
}
|
|
|
|
void ProgressView::hide()
|
|
{
|
|
if (m_pProgressDialog) {
|
|
m_pProgressDialog->hide();
|
|
}
|
|
}
|
|
|
|
QStringList FileOper::selectFiles(QString strTitle, QString strFilter, QString strDir)
|
|
{
|
|
QFileDialog fileDialog;
|
|
fileDialog.setDirectory(strDir);
|
|
fileDialog.setWindowTitle(strTitle);
|
|
fileDialog.setNameFilter(strFilter);
|
|
fileDialog.setFileMode(QFileDialog::ExistingFiles);
|
|
if (fileDialog.exec() == QDialog::Accepted) {
|
|
return fileDialog.selectedFiles();
|
|
}
|
|
return QStringList();
|
|
}
|