国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
QProgressDialog類(lèi)
主頁(yè) | 所有的類(lèi) | 主要的類(lèi) | 注釋的類(lèi) | 分組的類(lèi) | 函數(shù)

QProgressDialog類(lèi)參考

QProgressDialog類(lèi)提供了慢操作的進(jìn)度的反饋。 詳情請(qǐng)見(jiàn)……

#include <qprogressdialog.h>

繼承了QDialog

所有成員函數(shù)的列表。

公有成員

公有槽

信號(hào)

屬性

  • bool autoClose - 通過(guò)reset()對(duì)話框是否隱藏
  • bool autoReset - 一旦progress()等于totalSteps(),進(jìn)度對(duì)話框是否調(diào)用reset()
  • QString labelText - 標(biāo)簽的文本
  • int minimumDuration - 進(jìn)度就應(yīng)該在對(duì)話框打開(kāi)之前運(yùn)行的時(shí)間
  • int progress - 進(jìn)度當(dāng)前的進(jìn)度
  • int totalSteps - 步數(shù)的總量
  • bool wasCancelled - 對(duì)話框是否被取消 (只讀)

保護(hù)槽


詳細(xì)描述

QProgressDialog類(lèi)提供了慢操作的進(jìn)度的反饋。

進(jìn)度對(duì)話框用于給用戶這個(gè)操作還要有多長(zhǎng)時(shí)間的指示,并且證明這個(gè)應(yīng)用程序還沒(méi)有凍結(jié)。它也給用于一個(gè)中止這個(gè)操作運(yùn)行的機(jī)會(huì)。

進(jìn)度對(duì)話框的一個(gè)常見(jiàn)問(wèn)題是很難知道什么時(shí)候使用它們,操作在不同的硬件會(huì)占用不同的時(shí)間。QProgessDialog提供了對(duì)這個(gè)問(wèn)題的解決方案:它估計(jì)操作將占用的時(shí)間(基于沒(méi)步的時(shí)間),并且如果它超過(guò)minimumDuration()(默認(rèn)為4秒)才顯示自己。

使用setTotalSteps()(或者在構(gòu)造函數(shù)中)設(shè)置操作中的“步”數(shù)并且調(diào)用setProgress()作為操作進(jìn)度。步值的選擇是任意的。它可以是復(fù)制的文件數(shù),接收的字節(jié)數(shù),在你的算法的主循環(huán)中的反復(fù)次數(shù),或者一些其它的適合單元。進(jìn)度從0開(kāi)始,并且當(dāng)你把totalSteps()作為參數(shù)調(diào)用setProgress(),這個(gè)進(jìn)度對(duì)話框會(huì)顯示這個(gè)操作已經(jīng)完成。

對(duì)話框會(huì)在操作結(jié)束的時(shí)候自動(dòng)重置并且隱藏自己。使用setAutoReset()和setAutoClose()可以改變這個(gè)行為。

這里有使用QProgressDialog的兩種方法:模式和非模式。

對(duì)于程序員,使用模式QProgressDialog是更簡(jiǎn)單的,但是你必須調(diào)用qApp->processEvents()來(lái)保持事件循環(huán)的運(yùn)行來(lái)確保應(yīng)用程序沒(méi)有凍結(jié)。在循環(huán)中執(zhí)行這個(gè)操作,在間隔中調(diào)用setProgress(),并且檢查wasCancelled()的取消。例如:

QProgressDialog progress( "Copying files...", "Abort Copy", numFiles,this, "progress", TRUE );for ( int i = 0; i < numFiles; i++ ) {progress.setProgress( i );qApp->processEvents();if ( progress.wasCancelled() )break;//……復(fù)制文件}progress.setProgress( numFiles );

非模式進(jìn)度對(duì)話框適合發(fā)生在后臺(tái)的操作,用戶還可以和應(yīng)用程序進(jìn)行交互。這樣的操作通常是基于QTimer(或者QObject::timerEvent())、QSocketNotifierQUrlOperator,或者在一個(gè)獨(dú)立的進(jìn)度中執(zhí)行。你的主窗口的狀態(tài)條中的QProgressBar常??梢宰鰹槟J竭M(jìn)度對(duì)話框的替代。

你需要擁有一個(gè)正在運(yùn)行的時(shí)間循環(huán),把cancelled()信號(hào)和停止這個(gè)操作的槽連接起來(lái),并且在間隔中調(diào)用setProgress()。例如:

Operation::Operation( QObject *parent = 0 ): QObject( parent ), steps( 0 ){pd = new QProgressDialog( "Operation in progress.", "Cancel", 100 );connect( pd, SIGNAL(cancelled()), this, SLOT(cancel()) );t = new QTimer( this );connect( t, SIGNAL(timeout()), this, SLOT(perform()) );t->start( 0 );}void Operation::perform(){pd->setProgress( steps );//……執(zhí)行操作的一個(gè)半分比steps++;if ( steps > pd->totalSteps() )t->stop();}void Operation::cancel(){t->stop();//……清除}

你可以通過(guò)使用setLabel()、setBar()和setCancelButton()用自定制的窗口部件來(lái)替換子窗口部件來(lái)定制這兩種進(jìn)度對(duì)話框。

也可以參考QDialog、QProgressBar、圖形用戶界面設(shè)計(jì)手冊(cè):進(jìn)度指示器Dialog Classes。


成員函數(shù)文檔

QProgressDialog::QProgressDialog ( QWidget * creator = 0, const char * name = 0, bool modal = FALSE, WFlags f = 0 )

構(gòu)造一個(gè)進(jìn)度對(duì)話框。

默認(rèn)設(shè)置:

  • 標(biāo)簽文本為空。
  • 取消按鈕文本是(被翻譯的)“Cancel”。
  • 步數(shù)的總量是100。

creator窗口部件的頂級(jí)父對(duì)象變?yōu)檫@個(gè)對(duì)話框的父對(duì)象。name、modal和窗口部件標(biāo)記f被傳遞給QDialog::QDialog()的構(gòu)造函數(shù)。如果modal為假(默認(rèn)),你必須有一個(gè)正在進(jìn)行的事件循環(huán)來(lái)重新繪制這個(gè)對(duì)話框的變化。如果modal為真,這個(gè)對(duì)話框確保當(dāng)需要的時(shí)候事件會(huì)被處理。

也可以參考labelText、setLabel()、setCancelButtonText()、setCancelButton()和totalSteps。

QProgressDialog::QProgressDialog ( const QString & labelText, const QString & cancelButtonText, int totalSteps, QWidget * creator = 0, const char * name = 0, bool modal = FALSE, WFlags f = 0 )

構(gòu)造一個(gè)進(jìn)度對(duì)話框。

labelText是用于提行用戶什么正在進(jìn)行的文本。

cancelButtonText是顯示在取消按鈕上的文本,或者如果沒(méi)有取消按鈕被顯示就為0。

totalSteps是這個(gè)進(jìn)度對(duì)話框顯示進(jìn)度的操作的總步數(shù)。例如,如果這個(gè)操作檢測(cè)50個(gè)文件,這個(gè)值就應(yīng)該為50。在檢測(cè)第一個(gè)文件之前,調(diào)用setProgress(0)。每一個(gè)問(wèn)卷被處理的時(shí)候,調(diào)用setProgress(1)、setProgress(2)等等,在檢測(cè)完最后一個(gè)文件之后調(diào)用setProgress(50)。

name、modal和窗口部件標(biāo)記f被傳遞給QDialog::QDialog()的構(gòu)造函數(shù)。如果modal為假(默認(rèn)),你必須有一個(gè)正在進(jìn)行的事件循環(huán)來(lái)重新繪制這個(gè)對(duì)話框的變化。如果modal為真,這個(gè)對(duì)話框確保當(dāng)需要的時(shí)候事件會(huì)被處理。

creator參數(shù)是用來(lái)做為這個(gè)對(duì)話框的父對(duì)象的窗口部件。如果creator不是一個(gè)頂級(jí)窗口部件,傳遞給QDialog構(gòu)造函數(shù)的這個(gè)參數(shù)將為0。

也可以參考labelText、setLabel()、setCancelButtonText()、setCancelButton()和totalSteps。

QProgressDialog::~QProgressDialog ()

銷(xiāo)毀這個(gè)進(jìn)度對(duì)話框。

bool QProgressDialog::autoClose () const

如果通過(guò)reset()對(duì)話框是隱藏的,返回真,否則返回假。詳細(xì)情況請(qǐng)參考“autoClose”屬性。

bool QProgressDialog::autoReset () const

如果一旦progress()等于totalSteps(),進(jìn)度對(duì)話框調(diào)用reset(),返回真,否則返回假。詳細(xì)情況請(qǐng)參考“autoReset”屬性。

void QProgressDialog::cancel () [槽]

重置這個(gè)進(jìn)度對(duì)話框。知道這個(gè)進(jìn)度對(duì)話框被重置了,wasCancelled()變?yōu)檎?。這個(gè)進(jìn)度對(duì)話框變隱藏了。

void QProgressDialog::cancelled () [信號(hào)]

當(dāng)取消按鈕被點(diǎn)擊時(shí),這個(gè)信號(hào)被發(fā)射。它默認(rèn)被連接到cancel()槽。

也可以參考wasCancelled

實(shí)例:progress/progress.cpp。

void QProgressDialog::forceShow () [保護(hù) 槽]

如果在算法已經(jīng)開(kāi)始并且minimumDuration毫秒數(shù)已經(jīng)過(guò)去之后它還被隱藏,顯示這個(gè)對(duì)話框。

也可以參考minimumDuration

QString QProgressDialog::labelText () const

返回標(biāo)簽的文本。詳細(xì)情況請(qǐng)參考“labelText”屬性。

int QProgressDialog::minimumDuration () const

返回進(jìn)度就應(yīng)該在對(duì)話框打開(kāi)之前運(yùn)行的時(shí)間。詳細(xì)情況請(qǐng)參考“minimumDuration”屬性。

int QProgressDialog::progress () const

返回進(jìn)度當(dāng)前的進(jìn)度。詳細(xì)情況請(qǐng)參考“progress”屬性。

void QProgressDialog::reset () [槽]

重置這個(gè)進(jìn)度對(duì)話框。如果autoClose()為真,進(jìn)度對(duì)話框變?yōu)殡[藏。

也可以參考autoCloseautoReset。

void QProgressDialog::setAutoClose ( bool b )

設(shè)置通過(guò)reset()對(duì)話框是否隱藏為b。詳細(xì)情況請(qǐng)參考“autoClose”屬性。

void QProgressDialog::setAutoReset ( bool b )

設(shè)置一旦progress()等于totalSteps(),進(jìn)度對(duì)話框是否調(diào)用reset()為b。詳細(xì)情況請(qǐng)參考“autoReset”屬性。

void QProgressDialog::setBar ( QProgressBar * bar )

設(shè)置進(jìn)度條窗口部件為bar。進(jìn)度對(duì)話框會(huì)重新定義大小來(lái)適合它。進(jìn)度對(duì)話框會(huì)得到進(jìn)度條bar,bar當(dāng)需要的時(shí)候會(huì)被刪除,所以不要在使用在棧中分配的進(jìn)度條。

void QProgressDialog::setCancelButton ( QPushButton * cancelButton )

設(shè)置取消按鈕為推動(dòng)按鈕cancelButton。進(jìn)度對(duì)話框會(huì)得到這個(gè)按鈕,它當(dāng)需要的時(shí)候會(huì)被刪除,所以不要在使用在棧中分配的對(duì)象,也就是使用new()來(lái)創(chuàng)建這個(gè)按鈕。

也可以參考setCancelButtonText()。

void QProgressDialog::setCancelButtonText ( const QString & cancelButtonText ) [槽]

設(shè)置取消按鈕的文本為cancelButtonText。

也可以參考setCancelButton()。

void QProgressDialog::setLabel ( QLabel * label )

設(shè)置標(biāo)簽為label。進(jìn)度對(duì)話框會(huì)重新定義大小來(lái)適合它。進(jìn)度對(duì)話框會(huì)得到這個(gè)標(biāo)簽,它當(dāng)需要的時(shí)候會(huì)被刪除,所以不要在使用在棧中分配的對(duì)象,也就是使用new()來(lái)創(chuàng)建這個(gè)標(biāo)簽。

也可以參考labelText。

實(shí)例:progress/progress.cpp。

void QProgressDialog::setLabelText ( const QString & ) [槽]

設(shè)置標(biāo)簽的文本。詳細(xì)情況請(qǐng)參考“labelText”屬性。

void QProgressDialog::setMinimumDuration ( int ms ) [槽]

設(shè)置進(jìn)度就應(yīng)該在對(duì)話框打開(kāi)之前運(yùn)行的時(shí)間為ms。詳細(xì)情況請(qǐng)參考“minimumDuration”屬性。

void QProgressDialog::setProgress ( int progress ) [槽]

設(shè)置進(jìn)度當(dāng)前的進(jìn)度為progress。詳細(xì)情況請(qǐng)參考“progress”屬性。

void QProgressDialog::setTotalSteps ( int totalSteps ) [槽]

設(shè)置步數(shù)的總量為totalSteps。詳細(xì)情況請(qǐng)參考“totalSteps”屬性。

QSize QProgressDialog::sizeHint () const [虛]

返回適合這個(gè)進(jìn)度對(duì)話框內(nèi)容的大小。如果需要進(jìn)度對(duì)話框重新定義自己的大小,所以你應(yīng)該不需要自己調(diào)用這個(gè)。

int QProgressDialog::totalSteps () const

返回步數(shù)的總量。詳細(xì)情況請(qǐng)參考“totalSteps”屬性。

bool QProgressDialog::wasCancelled () const

如果對(duì)話框被取消,返回真,否則返回假。詳細(xì)情況請(qǐng)參考“wasCancelled”屬性。


屬性文檔

bool autoClose

這個(gè)屬性保存的是通過(guò)reset()對(duì)話框是否隱藏。

默認(rèn)為真。

也可以參考autoReset

通過(guò)setAutoClose()設(shè)置屬性值并且通過(guò)autoClose()來(lái)獲得屬性值。

bool autoReset

這個(gè)屬性保存的是一旦progress()等于totalSteps(),進(jìn)度對(duì)話框是否調(diào)用reset()。

默認(rèn)為真。

也可以參考autoClose。

通過(guò)setAutoReset()設(shè)置屬性值并且通過(guò)autoReset()來(lái)獲得屬性值。

QString labelText

這個(gè)屬性保存的是標(biāo)簽的文本。

默認(rèn)文本為QString::null。

通過(guò)setLabelText()設(shè)置屬性值并且通過(guò)labelText()來(lái)獲得屬性值。

int minimumDuration

這個(gè)屬性保存的是進(jìn)度就應(yīng)該在對(duì)話框打開(kāi)之前運(yùn)行的時(shí)間。

如果正在進(jìn)行的進(jìn)度任務(wù)的被期待持續(xù)時(shí)間小于這個(gè)最小持續(xù)時(shí)間,對(duì)話框?qū)⒉粫?huì)顯示。

如果被設(shè)置為0,一旦任何進(jìn)度被設(shè)置,這個(gè)對(duì)話框就一直被顯示。默認(rèn)為4000毫秒。

通過(guò)setMinimumDuration()設(shè)置屬性值并且通過(guò)minimumDuration()來(lái)獲得屬性值。

int progress

這個(gè)屬性保存的是進(jìn)度當(dāng)前的進(jìn)度。

對(duì)于正如所期望的運(yùn)行的進(jìn)度對(duì)話框,你應(yīng)該初始化設(shè)置這個(gè)屬性為0并且最后把它設(shè)置為QProgressDialog::totalSteps(),你可以在這之間調(diào)用setProgress()任意次。

警告: 如果進(jìn)度對(duì)話框是模式的(請(qǐng)參考QProgressDialog::QProgressDialog())),這個(gè)函數(shù)調(diào)用QApplication::processEvents(),所以注意這個(gè)函數(shù)不會(huì)導(dǎo)致不受歡迎的重新進(jìn)入你的代碼。例如,不要在paintEvent()中使用QProgressDialog!

也可以參考totalSteps。

通過(guò)setProgress()設(shè)置屬性值并且通過(guò)progress()來(lái)獲得屬性值。

int totalSteps

這個(gè)屬性保存的是步數(shù)的總量。

默認(rèn)為0。

通過(guò)setTotalSteps()設(shè)置屬性值并且通過(guò)totalSteps()來(lái)獲得屬性值。

bool wasCancelled

這個(gè)屬性保存的是對(duì)話框是否被取消。

也可以參考progress。


這個(gè)文件是Qt工具包一部分。版權(quán)所有 © 1995-2002 Trolltech。保留所有權(quán)利。


Copyright © 2002 Trolltech Trademarks 譯者:Cavendish
Qt 3.0.5版
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
MFC各種控件屬性介紹
QToolButton
CorelDRAW 12循序漸進(jìn)(精華版)
Word 2013中的“自動(dòng)化”
文件夾里加背景圖片
2012年職稱(chēng)計(jì)算機(jī)考試:PowerPoint模擬試題
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服