2020年7月21日 星期二

在 SpinBox 使用 float 數值

在 SpinBox 使用 float 數值

前言

  在先前的 SpinBox 的基本應用 裡提到了 SpinBox 要使用 float 的數值的作法與 Slider 不一樣,這次就來學習如何使用,在此把學習的過程做個紀錄。

內容

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

SpinBox 要使用 float 的數值的話要使用 DoubleSpinBox ,圖中左側為 DoubleSpinBox 在工具箱的位置。執行結果如下
範例的執行結果

在設計介面看到 DoubleSpinBox  的屬性如下
DoubleSpinBox 的屬性

屬性中的"decimals"表示精度,預設是 2 ,也就是小術後的兩位數,要注意自己輸入的數值也會被精度影響。

  接著看程式的操作,看到 MainWindow::MainWindow() ,程式碼如下
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
  ui->setupUi(this);
  //
  connect( ui->doubleSpinBox , QOverload<double>::of(&QDoubleSpinBox::valueChanged) , this , &MainWindow::onDoubleSpinBoxValueChanged );
  //
  ui->doubleSpinBox->setValue( 50.5 );
}

這個部分的用法和 SpinBox 是一樣的,只是數值型態為 double ,事件的實現如下
void MainWindow::onDoubleSpinBoxValueChanged(double vlaue)
{
  qDebug( "new value:%.2lf" , ui->doubleSpinBox->value() );
}

這個部分的用法也和 SpinBox 一樣就不再說明。

參考資料

[ doc.qt.io ] QDoubleSpinBox

相關文章與資料

[ GitLab ] HelloQt
SpinBox 的基本應用

沒有留言:

張貼留言