日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

C++ Qt开发:Slider滑块条组件

發布時間:2023/12/24 windows 26 coder
生活随笔 收集整理的這篇文章主要介紹了 C++ Qt开发:Slider滑块条组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

水平滑塊(Horizontal Slider)特點

  • 方向: 在水平軸上移動,允許用戶通過拖動滑塊來選擇數值。
  • 應用場景: 適用于需要在水平方向上進行范圍選擇的情況,比如調整音量、進度等。

垂直滑塊(Vertical Slider)特點

  • 方向: 在垂直軸上移動,允許用戶通過拖動滑塊來選擇數值。
  • 應用場景: 適用于需要在垂直方向上進行范圍選擇的情況,比如調整亮度、高度等。

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

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

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

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

1.1 使用滑塊條事件

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

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

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

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

當用戶點擊頁面中的設置按鈕時,此時在后端只需要調用verticalSliderhorizontalSlider滑塊條的setValue屬性即可實現對滑塊條的賦值。

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

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

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

1.2 滑塊條與信號綁定

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

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

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

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

接著,我們在MainWindow構造函數上分別綁定三個信號,將 SliderGreenSliderBlueSliderAlpha 與第一個滑塊條 SliderRead 關聯起來,并全部綁定到on_SliderRed_valueChanged槽函數上,此時的實現效果為,當其他三個選擇條數值改變時,同樣會觸發on_SliderRed_valueChanged槽函數執行變色。

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)));
}

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

總結

以上是生活随笔為你收集整理的C++ Qt开发:Slider滑块条组件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美国av大片 | 亚洲成人一区二区在线观看 | 午夜精品三级久久久有码 | 高清成人| 国产欧美在线观看视频 | 九色91 | 少妇人妻无码专区视频 | 成人在线免费视频播放 | 中文字幕一二三四 | 粉嫩av国产一区二区三区 | 激情小说在线观看 | 播放灌醉水嫩大学生国内精品 | 超碰中文字幕在线 | jizz18欧美18| 亚洲男人第一天堂 | 久久精品丝袜高跟鞋 | 91官网在线| 亚洲精品无码不卡在线播he | 日本乱码一区二区 | 日日燥夜夜燥 | 国产欧美日韩二区 | 女人一区二区三区 | 久久人人爽天天玩人人妻精品 | 亚洲v欧美v另类v综合v日韩v | 欧洲一区二区在线 | 成人国产免费视频 | 亚洲国产成人精品无码区99 | 碰碰久久 | 欧美日本高清视频 | 亚洲免费网 | 日本学生初尝黑人巨免费视频 | 91亚洲国产成人精品一区二区三 | 欧美日韩精品久久久 | 亚洲美女福利视频 | 国产又黄又爽视频 | 久久99国产精品久久99 | 91麻豆免费视频 | 毛片看| 黄色成年人视频 | 久久久久免费精品 | 亚洲视频中文字幕在线观看 | 特级淫片aaaaaaa级附近的 | 99久久免费精品 | 欧美精品成人 | 97超碰中文 | 影音先锋男人天堂 | 波多野结衣国产 | 岛国av电影在线观看 | 国产av无码专区亚洲a∨毛片 | 500部大龄熟乱视频 亚洲乱码精品 | 欧美黄色一区二区 | www,五月天,com| 成年人av在线播放 | 欧美日韩aaa | jizz91| 国产精欧美一区二区三区蓝颜男同 | 亚洲欧美一二三 | 色精品| 人人射人人插 | 免费黄色小网站 | 91视频在线| www.久久精品.com| 一本久道视频一本久道 | 亚洲AV无码一区二区伊人久久 | 欧洲视频在线观看 | 欧美午夜精品久久久久久蜜 | 亚洲va欧美va国产综合久久 | 天天操夜夜操视频 | 封神榜二在线高清免费观看 | 久久国产夫妻 | 少妇的性事hd | 在线观看www| 日本三级片在线观看 | 88久久精品无码一区二区毛片 | 欧美视频三区 | 国产三级国产精品 | 偷拍欧美另类 | 成年性生交大片免费看 | 五色天婷婷 | 我的好妈妈在线观看 | 奇米在线777 | 美梦视频大全在线观看高清 | 国产一区免费观看 | 亚洲伦理自拍 | 精品无码黑人又粗又大又长 | 日日夜夜撸啊撸 | 欧美成在线 | 日本高清视频网站 | 国产精品久久二区 | 日韩成人av网 | 打白嫩屁屁网站视频短裙 | 成为性瘾网黄的yy对象后 | 波多野结衣爱爱 | av导航网站 | 美女光屁屁露胸胸 | 日韩一区二区免费视频 | 精东av在线| 国产日韩大片 | 91精品国产高清 |