2020年7月14日 星期二

SpinBox 的基本應用

SpinBox 的基本應用

前言

  在先前的 Slider 的基本應用 裡介紹了 Slider 可以應用於整數的輸入,但如果數值的範圍大時,要拖到指定的數值時會很花時間,這時候 SpinBox 會比較適合,在此把學習的過程做個紀錄。

內容

  先到 [ GitLab ] HelloQt 下載範例,這次應用的專案路徑
(HelloQt' directory)/SpinBox/Basic,在 Qt Creator 開啟設計介面會看到以下
範例的設計介面

圖中左側有 SpinBox 在工具箱的位置,執行結果如下
範例的執行結果

在設計介面可以看到和 Slider 相似的屬性,如下圖
SpinBox 的屬性

用法和 Slider 差不多,這就不多做解說。

  接著看程式的操作,看到 MainWindow::MainWindow() ,程式碼如下
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
  ui->setupUi(this);
  //
  connect( ui->spinBox , QOverload<int>::of( &QSpinBox::valueChanged ), this , &MainWindow::onSpinBoxValueChanged );
  //
  ui->spinBox->setValue( 50 );
  //
}

程式的開頭做了事件綁定,要注意 valueChanged() 綁定要經過轉型的動作,接著透過 setValue() 來設定 SpinBox 的數值,事件的程式碼如下
void MainWindow::onSpinBoxValueChanged(int value)
{
  qDebug( "new value:%ld" , ui->spinBox->value() );
}

透過 value() 來取得當前的數值,也可以從引數的 value 來取得。

  SpinBox 的好處是可以直接受透過輸入來設定數值,用起來也相單的簡單,但對 Float 數值的解決方案和 Slider 不太一樣,下一篇會做個說明。

參考資料

[ doc.qt.io ] QSpinBox Class

相關文章與資料

[ GitLab ] HelloQt
Slider 的基本應用

沒有留言:

張貼留言