QSlider、QScrollBar、QProgressBar控件的聯動

簡介: QSlider移動條、QScrollBar滾動條、QProgressBar進度條控件的聯動,講解和的使用

本博文的簡述or解決問題?

詳情: 見簡介


編程環境: win10 x64 專業版 1803

編程軟件: Qt Creator 4.8.2 (Enterprise)Qt 5.9.8


同步博文:


系列博文:

比較緊密的關聯博文參考:


## 運行效果:

先放一張運行效果


繼承關係:

QSlider移動條、QScrollBar滾動條、進度條這三個控件,都是繼承於QAbstractSlider類,其中關於QSlider和QAbstractSlider屬性講解,參考已經發過的文章https://blog.csdn.net/qq_33154343/article/details/100944831 ;關於這幾個控件的繼承關係如下圖:


滾動條QScrollBar:

  • QScrollBar 從QAbstractSlider繼承而來的,具有QAbstractSlider的基本屬性,沒有專有屬性。

進度條QProgressBar:

  • QProgressBar的父類是QWidget,一般用於進度顯示,常用屬性如下。
屬性 含義
minimum 最小值
maximum 最大值
value 當前值,可以設定或讀取當前值
textVisible 是否顯示文字,文字一般是百分比表示的進度。
orientation 可以設置爲水平或垂直方向。
format 顯示文字的格式,“%p%”顯示百分比,“%v”顯示當前值,“%m”顯示總步數。缺省爲“%p%”。

代碼演示:

此處實現了,信號於槽函數的多對一,從而避免了槽函數的重複寫多遍

//ui->progressBarHor->setOrient1ation(Qt::Horizontal /*(the default)  Qt::Vertical*/);  設置進度條水平或豎直

connect(ui->sliderHor, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int)));
connect(ui->scrollBarHor, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int)));
connect(ui->scrollBarHor, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int)));
connect(ui->sliderVer, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int)));
connect(ui->scrollBarVer, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int)));
connect(ui->progressBarVer, SIGNAL(valueChanged(int)), this, SLOT(onValChange(int)));

===================================================================================

//對應的槽函數
void ExQProgressBar::onValChange(int val)
{
    ui->sliderHor->setValue(val);
    ui->scrollBarHor->setValue(val);
    ui->progressBarHor->setValue(val);
    ui->sliderVer->setValue(val);
    ui->scrollBarVer->setValue(val);
    ui->progressBarVer->setValue(val);

}

源碼下載:

https://github.com/touwoyimuli/QtExamples 【QtQProgressBarEx】


開心分享:

因爲有着許許多多的熱心網友的無私分享,從他們的博客中學習成長,學會很多,故也不辭辛苦也將自己的項目或經驗整理成博客的形式,也提供給一起大家學習探討與交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章