Qt中QProgressBar的用法

2021-09-10 08:55:08 字數 4545 閱讀 9341

簡述:

qt提供了兩種顯示進度條的方式:一種是qprogressbar,提供了一種橫向或者縱向顯示進度的控制項表示方式,用來描述任務的完成情況;另一種是qprogressdialog,提供了一種針對慢速過程的進度對話方塊表示方式,用於描述任務完成的進度情況。標準的進度條對話方塊包括乙個進度顯示條、乙個取消按鈕及乙個標籤。

m_pconnectprobar = new qprogressbar;
m_pconnectprobar->setrange(0,100); //設定進度條最小值和最大值(取值範圍)
m_pconnectprobar->setminimum(0); //設定進度條最小值
m_pconnectprobar->setmaximum(100); //設定進度條最大值
m_pconnectprobar->setvalue(50);  //設定當前的執行值
m_pconnectprobar->reset(); //讓進度條重新回到開始
m_pconnectprobar->setorientation(qt::horizontal);  //水平方向
m_pconnectprobar->setorientation(qt::vertical);  //垂直方向
m_pconnectprobar->setalignment(qt::alignvcenter);  // 對齊方式
m_pconnectprobar->settextvisible(false); //隱藏進度條文字
m_pconnectprobar->setfixedsize(258,5);   //進度條固定大小
m_pconnectprobar->setvisible(false);  //false:隱藏進度條  true:顯示進度條

列舉qprogressbar::direction  :指定垂直進度條文字的讀取方向

這個屬性對水平進度條沒有影響。預設情況下,讀取方向為: qprogressbar::toptobottom

當水平進度時,可以從左到右,也可以從右到左;同樣,垂直顯示進度時,可以從上到下,也可以從下到上。

qprogressbar *m_plefttorightprobar = 

new qprogressbar(

this);

m_plefttorightprobar->setorientation(qt::horizontal);

// 水平方向

m_plefttorightprobar->setminimum(

0);

// 最小值

m_plefttorightprobar->setmaximum(

100);

// 最大值

m_plefttorightprobar->setvalue(

50);

// 當前進度

qprogressbar *m_prighttoleftprobar =

new qprogressbar(

this);

m_prighttoleftprobar->setorientation(qt::horizontal);

// 水平方向

m_prighttoleftprobar->setminimum(

0);

// 最小值

m_prighttoleftprobar->setmaximum(

100);

// 最大值

m_prighttoleftprobar->setvalue(

50);

// 當前進度

true);

// 反方向

setformat()  :用於生成當前文字字串

%p%  : 百分比,這是預設的顯示方式

%v     : 當前進度

%m    : 總步數

qprogressbar *m_pprogressbar = 

new qprogressbar(

this);

m_pprogressbar->setorientation(qt::horizontal);

// 水平方向

m_pprogressbar->setminimum(

0);

// 最小值

m_pprogressbar->setmaximum(

4800);

// 最大值

m_pprogressbar->setvalue(

2000);

// 當前進度

double dprogress = (m_pprogressbar->value() - m_pprogressbar->minimum()) *

100.0

/ (m_pprogressbar->maximum() - m_pprogressbar->minimum());

// 百分比計算公式

// m_pprogressbar->setformat(qstring::fromlocal8bit("當前進度為:%1%").arg(qstring::number(dprogress, 'f', 1)))

m_pprogressbar->setformat(tr(

"current progress : %1%").arg(qstring::number(dprogress,

'f',

1)));

m_pprogressbar->setalignment(qt::alignleft | qt::alignvcenter);

// 對齊方式

如果要顯示百分比,可以直接使用「%p%」 (比如:41%);

setalignment() ,可以指定顯示文字的對齊方式;

如果最小值和最大值都設定為0,進度條會顯示了乙個繁忙指示,而不會顯示當前的值。

qprogressbar *m_pprogressbar = new qprogressbar(this);
m_pprogressbar->setorientation(qt::horizontal);  // 水平方向
m_pprogressbar->setminimum(0);  // 最小值
m_pprogressbar->setmaximum(0);  // 最大值

標頭檔案:progressdlg.h

#ifndef progressdlg_h

#define progressdlg_h

#include

#include

#include

#include

#include

#include

#include

class

progressdlg :

public qdialog

;#endif

// progressdlg_h

progressdlg.cpp檔案:

#include

"progressdlg.h"

#include

#include

progressdlg::progressdlg(qwidget *parent)

: qdialog(parent)

progressdlg::~progressdlg()

void progressdlg::startprogress()

}else

if(combobox->currentindex()==

1)

//progressdialog}}

Qt之QProgressBar進度條

值描述 qprogressbar toptobottom 0文字是順時針旋轉了90度 qprogressbar bottomtotop 1文字是逆時針旋轉90度 qprogressbar pprogressbar new qprogressbar this pprogressbar setorien...

Qt 筆記 Qt中的IO操作

qt中io操作的處理方式 qt通過統一的介面簡化了檔案與外部裝置的操作方式 qt中的檔案被看做一種特殊的外部裝置 qt中的檔案操作與外部裝置的操作相同 io操作中的關鍵函式介面 開啟裝置 bool open openmode mode 讀取資料 qbytearray read qint64 maxs...

Qt中socket程式設計

在linux下進行網路程式設計,我們可以使用linux提供的統一的套接字介面。但是這種方法牽涉到太多的結構體,比如ip位址,埠轉換等,不熟練的人往往容易犯這樣那樣的錯誤。qt中提供的socket完全使用了類的封裝機制,使使用者不需要接觸底層的各種結構體操作。而且它採用qt本身的signal slot...