网站建设专业性的评估,Wordpress 微博评论,有没有通信专业业余做兼职的网站,个人wordpress一、前言 QProgressDialog类继承于QDialog#xff0c;是Qt设计用来反馈进度的对话框。 对话框QDialog QProgressDialog提供了一个进度条#xff0c;表示当前程序的某操作的执行进度#xff0c;让用户知道操作依旧在激活状态#xff0c;配合按钮#xff0c;用户就可以随时终…一、前言 QProgressDialog类继承于QDialog是Qt设计用来反馈进度的对话框。 对话框QDialog QProgressDialog提供了一个进度条表示当前程序的某操作的执行进度让用户知道操作依旧在激活状态配合按钮用户就可以随时终止操作并且进度条、标签、按钮都可以自定义。其他属性比如最大值、最小值、步长、当前值等的操作和QProgressBar相同。 QProgressDialog在不知道何时显示进度条的情况下提供了解决方案比如在操作硬件的时时候在不同系统消耗的时间不同它提供了minimumDuration属性在超过minimumDuration之后才显示进度条。
QProgressDialog progress(Copying files..., Abort Copy, 0, 100, this);
progress.setWindowModality(Qt::WindowModal);
progress.setWindowTitle(QProgressDialog);
progress.open(this,SLOT(onMessageBoxFinish()));
progress.setValue(20);
progress.exec(); 二、QProgressDialog类
1、autoClose 该属性表示是否使用reset()会自动隐藏进度条默认为false。
bool autoClose() const
void setAutoClose(bool close)
2、autoReset 该属性表示是否在当前值value等于最大值maximum的时候调用reset()默认为true。
bool autoReset() const
void setAutoReset(bool reset)
3、labelText 该属性表示标签的文本默认为空字符串。
QString labelText() const
void setLabelText(const QString text)
4、maximum 该属性表示进度条可设的最大值默认值为100。
int maximum() const
void setMaximum(int maximum)
5、minimum 该属性表示进度条可设的最小值默认值为0。
int minimum() const
void setMinimum(int minimum)
6、minimumDuration 该属性保存对话框出现之前必须经过的时间如果任务的预期持续时间小于该值则不会出现对话框。这可以防止为快速结束的任务弹出对话框。如果设置为0则只要设置了任何进度对话框就会立即显示。默认值为4000毫秒。
int minimumDuration() const
void setMinimumDuration(int ms)
7、value 该属性表示当前进度条的值该值要不小于最小值minimum不大于maximum。
int value() const
void setValue(int progress)
8、wasCanceled 该属性表示对话框是否被取消。
bool wasCanceled() const 配合模式对话框使用在setValue()的时候判断对话框是否取消。
QProgressDialog progress(Copying files..., Abort Copy, 0, numFiles, this);
progress.setWindowModality(Qt::WindowModal);for (int i 0; i numFiles; i) {progress.setValue(i);if (progress.wasCanceled())break;//... copy one file
}
progress.setValue(numFiles);9、公共函数
1open 打开对话框并将其canceled()信号连接到接收器和成员指定的插槽。如果槽函数的第一个参数有一个指针则连接到buttonClicked()否则连接到finished()当对话框关闭的时候这个信号槽连接会被断开。
void open(QObject *receiver, const char *member) 实例打开对话框的同时绑定信号canceled与槽函数onQProgressDialogCanceled对话框关闭取消信息。
public slots:void onQProgressDialogCanceled();
void MainWindow::onQProgressDialogCanceled()
{qDebug()QProgressDialog Finish;
}QProgressDialog progress(Copying files..., Abort Copy, 0, 100, this);
progress.setWindowModality(Qt::WindowModal);
progress.setWindowTitle(QProgressDialog);
progress.open(this,SLOT(onQProgressDialogCanceled()));
progress.setValue(20);
progress.exec(); 2setBar 自定义进度条进度对话框会自动调整大小。进度对话框拥有将在必要时删除的进度条因此不要使用在堆栈上分配的进度条。
void setBar(QProgressBar *bar)
3setCancelButton 自定义取消按钮进度对话框拥有这个按钮的所有权它将在必要时被删除所以不要传递堆栈上对象的地址。
void setCancelButton(QPushButton *cancelButton)
4setLabel 自定义标签进度对话框会自动调整大小。标签归进度对话框所有必要时将被删除因此不要在堆栈上传递对象的地址。
void setLabel(QLabel *label)
10、公共槽函数
1cancel 取消操作会产生重置进度对话框wasCanceled()变为true直到进度对话框被重置进度对话框隐藏。
void cancel()
2reset 重置进度对话框如果autoClose设置为true那么进度条会被隐藏。
void reset()
3setCancelButtonText 设置取消按钮上面的文本。
void setCancelButtonText(const QString cancelButtonText)
4setRange 等同于setMinimum和setMinimumDuration。
void setRange(int minimum, int maximum)
11、信号
1canceled 取消按钮被点击时触发。
void canceled() 示例定时器循环对进度条赋值当到达最大值的时候或者取消按钮被按下的时候结束定时器。 // Operation constructorOperation::Operation(QObject *parent): QObject(parent), steps(0){pd new QProgressDialog(Operation in progress., Cancel, 0, 100);connect(pd, QProgressDialog::canceled, this, Operation::cancel);t new QTimer(this);connect(t, QTimer::timeout, this, Operation::perform);t-start(0);}void Operation::perform(){pd-setValue(steps);//... perform one percent of the operationsteps;if (steps pd-maximum())t-stop();}void Operation::cancel(){t-stop();//... cleanup}