亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Qt實現(xiàn)Slider滑塊條組件的示例代碼

 更新時間:2023年12月18日 11:51:11   作者:微軟技術(shù)分享  
在Qt中我們可以通過拖拽的方式將不同組件放到指定的位置,本文主要介紹了Qt實現(xiàn)Slider滑塊條組件的示例代碼,具有一定的參考價值,感興趣的可以了解一下

Qt 是一個跨平臺C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺窗體應(yīng)用程序,在Qt中我們可以通過拖拽的方式將不同組件放到指定的位置,實現(xiàn)圖形化開發(fā)極大的方便了開發(fā)效率,本章將重點介紹Slider滑塊條組件的常用方法及靈活運用。

當(dāng)涉及到C++ Qt開發(fā)中的Slider滑塊條組件時,你可能會用到QSlider類。QSlider是一個用于選擇整數(shù)值的控件,常用于調(diào)整范圍內(nèi)的數(shù)值,如音量、亮度等。在水平方向上的Slider通常被稱為水平滑塊(Horizontal Slider),而在垂直方向上的Slider被稱為垂直滑塊(Vertical Slider)。

水平滑塊(Horizontal Slider)特點

  • 方向: 在水平軸上移動,允許用戶通過拖動滑塊來選擇數(shù)值。
  • 應(yīng)用場景: 適用于需要在水平方向上進(jìn)行范圍選擇的情況,比如調(diào)整音量、進(jìn)度等。

垂直滑塊(Vertical Slider)特點

  • 方向: 在垂直軸上移動,允許用戶通過拖動滑塊來選擇數(shù)值。
  • 應(yīng)用場景: 適用于需要在垂直方向上進(jìn)行范圍選擇的情況,比如調(diào)整亮度、高度等。

這兩種Slider都是在用戶界面中提供直觀、交互式的方式來選擇數(shù)值范圍的優(yōu)秀組件,它們能夠很好地與Qt應(yīng)用程序的其他部分集成。

以下是QSlider類的一些常用方法的說明和概述,以表格形式進(jìn)行說明:

方法描述
QSlider(Qt::Orientation, QWidget *parent = nullptr)構(gòu)造函數(shù),創(chuàng)建一個滑塊控件。Qt::Orientation參數(shù)指定方向(Qt::HorizontalQt::Vertical)。
setMinimum(int min)設(shè)置滑塊的最小值。
setMaximum(int max)設(shè)置滑塊的最大值。
setSingleStep(int step)設(shè)置用戶通過鼠標(biāo)或鍵盤按鍵時,滑塊的單步大小。
setPageStep(int step)設(shè)置用戶通過點擊滑塊軌道時,滑塊的頁面步長。
setValue(int value)設(shè)置滑塊的當(dāng)前值。
value() const返回滑塊的當(dāng)前值。
setTickInterval(int ti)設(shè)置刻度間隔,以便顯示刻度標(biāo)記。
setTickPosition(TickPosition position)設(shè)置刻度標(biāo)記的位置(NoTicks、TicksAbove、TicksBelow、TicksBothSides)。
sliderPosition() const返回滑塊的位置,通常與value()相同,但可能在某些情況下不同(例如,未捕獲的移動)。
setTracking(bool enable)啟用/禁用實時跟蹤。如果啟用,滑塊在拖動時會實時更新值;禁用時,只有在釋放鼠標(biāo)時才更新。
setTickInterval(int ti)設(shè)置刻度間隔,以便顯示刻度標(biāo)記。
setTickPosition(TickPosition position)設(shè)置刻度標(biāo)記的位置(NoTicksTicksAbove、TicksBelow、TicksBothSides)。

這些方法提供了一些基本的控制和配置選項,以便根據(jù)應(yīng)用程序的需求對QSlider進(jìn)行調(diào)整。在使用這些方法時,你可以根據(jù)具體的場景和用戶體驗需求來靈活選擇參數(shù)值。

1.1 使用滑塊條事件

如下圖,我們首先創(chuàng)建一個頁面UI,在頁面中左側(cè)放置Vertical Slider垂直滑塊,底部放置Horizontal Slider水平滑塊,在水平滑塊的上方放置兩個lineEdit組件,在其右側(cè)是兩個調(diào)節(jié)按鈕。

不論是水平滑塊(Horizontal Slider)條還是垂直滑塊(Vertical Slider)條其都有一個valueChanged(int)的槽函數(shù),該信號用于接收滑塊條的參數(shù)改變情況,通常會返回到函數(shù)參數(shù)上,此時只需要在槽函數(shù)內(nèi)對該參數(shù)進(jìn)行捕捉處理即可,如下代碼,通過捕捉滑塊進(jìn)度并將其輸出到編輯框內(nèi);

// 垂直滑塊(Vertical Slider)條
void MainWindow::on_verticalSlider_valueChanged(int value)
{
    // 轉(zhuǎn)換整數(shù)為string
    QString myString = QString::number(value);
    // 設(shè)置到編輯框內(nèi)
    ui->lineEdit->setText(myString);
}

// 水平滑塊(Horizontal Slider)條
void MainWindow::on_horizontalSlider_valueChanged(int value)
{
    // 轉(zhuǎn)換整數(shù)為string
    QString myString = QString::number(value);
    // 設(shè)置到編輯框內(nèi)
    ui->lineEdit_2->setText(myString);
}

當(dāng)用戶點擊頁面中的設(shè)置按鈕時,此時在后端只需要調(diào)用verticalSliderhorizontalSlider滑塊條的setValue屬性即可實現(xiàn)對滑塊條的賦值。

// 設(shè)置垂直滑塊(Vertical Slider)條進(jìn)度
void MainWindow::on_pushButton_clicked()
{
    // 字符串轉(zhuǎn)整數(shù)
    int x = ui->lineEdit->text().toUInt();
    // 設(shè)置數(shù)值到滑塊條
    ui->verticalSlider->setValue(x);
}

// 設(shè)置水平滑塊(Horizontal Slider)條
void MainWindow::on_pushButton_2_clicked()
{
    int x = ui->lineEdit_2->text().toUInt();
    ui->horizontalSlider->setValue(x);
}

運行代碼,讀者可自行測試滑塊條的取值與設(shè)置功能,如下圖所示;

1.2 滑塊條與信號綁定

滑塊條同樣可以與信號綁定,在某些時候我們希望只需要變動滑塊條的位置就能實現(xiàn)特定的功能,此時就需要對特定的滑塊條綁定信號與槽函數(shù),如下圖所示,我們在左側(cè)調(diào)色板位置放置四個滑塊條用于調(diào)整顏色參數(shù),在右側(cè)放置一個textEdit編輯框,當(dāng)讀者滑動滑塊時右側(cè)則出現(xiàn)相對應(yīng)的顏色。

首先,我們以第一個紅色Horizontal Slider滑塊條為例,通過右鍵選中轉(zhuǎn)到槽,選擇valueChaged(int)這個槽函數(shù),并實現(xiàn)如下邏輯,在代碼中我們分別讀入四個進(jìn)度條的默認(rèn)值,并率先設(shè)置到textEdit組件上,接著就是對textEdit底色的設(shè)置。

// 變色槽函數(shù)
void MainWindow::on_SliderRed_valueChanged(int value)
{
    Q_UNUSED(value);
     QColor color;
     int R=ui->SliderRed->value();      // 讀取SliderRed的當(dāng)前值
     int G=ui->SliderGreen->value();    // 讀取 SliderGreen 的當(dāng)前值
     int B=ui->SliderBlue->value();     // 讀取 SliderBlue 的當(dāng)前值
     int alpha=ui->SliderAlpha->value();// 讀取 SliderAlpha 的當(dāng)前值
     color.setRgb(R,G,B,alpha);         // 使用QColor的setRgb()函數(shù)獲得顏色

     QPalette pal=ui->textEdit->palette(); // 獲取textEdit原有的 palette
     pal.setColor(QPalette::Base,color);   // 設(shè)置palette的基色(即背景色)
     ui->textEdit->setPalette(pal);        // 設(shè)置為textEdit的palette,改變textEdit的底色
}

接著,我們在MainWindow構(gòu)造函數(shù)上分別綁定三個信號,將 SliderGreenSliderBlue,SliderAlpha 與第一個滑塊條 SliderRead 關(guān)聯(lián)起來,并全部綁定到on_SliderRed_valueChanged槽函數(shù)上,此時的實現(xiàn)效果為,當(dāng)其他三個選擇條數(shù)值改變時,同樣會觸發(fā)on_SliderRed_valueChanged槽函數(shù)執(zhí)行變色。

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QObject::connect(ui->SliderRed,SIGNAL(valueChanged(int)),this,SLOT(on_SliderRed_valueChanged(int)));
    QObject::connect(ui->SliderGreen,SIGNAL(valueChanged(int)),this,SLOT(on_SliderRed_valueChanged(int)));
    QObject::connect(ui->SliderBlue,SIGNAL(valueChanged(int)),this,SLOT(on_SliderRed_valueChanged(int)));
    QObject::connect(ui->SliderAlpha,SIGNAL(valueChanged(int)),this,SLOT(on_SliderRed_valueChanged(int)));
}

至此,讀者可自行拖拽滑塊條以獲得不同的配色方案,如下圖所示,這里需要提醒讀者默認(rèn)滑塊條是0-99而顏色的長度為0-255讀者需要自行調(diào)整滑塊條的顏色值,以獲取更多的配色方案。

到此這篇關(guān)于Qt實現(xiàn)Slider滑塊條組件的示例代碼的文章就介紹到這了,更多相關(guān)Qt Slider滑塊條內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c++項目構(gòu)成從cmake使用基礎(chǔ)詳解

    c++項目構(gòu)成從cmake使用基礎(chǔ)詳解

    這篇文章主要為大家介紹了c++項目構(gòu)成,從cmake使用基礎(chǔ)開始為大家講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • C語言實現(xiàn)無頭單鏈表詳解

    C語言實現(xiàn)無頭單鏈表詳解

    大家好,本篇文章主要講的是C語言實現(xiàn)無頭單鏈表詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • C++中4種強制類型轉(zhuǎn)換的區(qū)別總結(jié)

    C++中4種強制類型轉(zhuǎn)換的區(qū)別總結(jié)

    C++風(fēng)格的類型轉(zhuǎn)換提供了4種類型轉(zhuǎn)換操作符來應(yīng)對不同場合的應(yīng)用。下面這篇文章主要給大家介紹了C++中4種強制類型轉(zhuǎn)換的區(qū)別,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • 基于條件變量的消息隊列 說明介紹

    基于條件變量的消息隊列 說明介紹

    本篇文章小編為大家介紹,基于條件變量的消息隊列 說明介紹。需要的朋友參考一下
    2013-04-04
  • C++讀寫ini配置文件實現(xiàn)過程詳解

    C++讀寫ini配置文件實現(xiàn)過程詳解

    這篇文章主要介紹了C++讀寫ini配置文件實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • C++實現(xiàn)defer聲明方法詳解

    C++實現(xiàn)defer聲明方法詳解

    這篇文章主要介紹了C++實現(xiàn)defer聲明,在和朋友交談時候,無意間了解到Go語言的defer,發(fā)現(xiàn)挺有意思的。和智能指針類似,當(dāng)出了作用域后,被defer修飾的操作才會執(zhí)行
    2022-11-11
  • 淺談C語言結(jié)構(gòu)體

    淺談C語言結(jié)構(gòu)體

    本文主要介紹C語言 結(jié)構(gòu)體的知識,學(xué)習(xí)C語言肯定需要學(xué)習(xí)結(jié)構(gòu)體,這里詳細(xì)說明了結(jié)構(gòu)體并附示例代碼,供大家參考學(xué)習(xí),有需要的小伙伴可以參考下
    2021-10-10
  • jQuery移動頁面開發(fā)中主題按鈕的設(shè)計示例

    jQuery移動頁面開發(fā)中主題按鈕的設(shè)計示例

    這篇文章主要介紹了jQuery移動頁面開發(fā)中主題按鈕的設(shè)計示例,jQuery是當(dāng)今最具人氣的JavaScript開發(fā)類庫,需要的朋友可以參考下
    2015-12-12
  • C語言趣味編程之水仙花數(shù)

    C語言趣味編程之水仙花數(shù)

    這篇文章介紹了C語言趣味編程之水仙花數(shù),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • C++鏈表倒序?qū)崿F(xiàn)方法

    C++鏈表倒序?qū)崿F(xiàn)方法

    這篇文章主要介紹了C++鏈表倒序?qū)崿F(xiàn)方法,是一個很經(jīng)典的C++鏈表操作實例,需要的朋友可以參考下
    2014-08-08

最新評論