QSpinBox/QDoubleSpinBox/QSlider组合使用

简介: QSpinBox/QDoubleSpinBox/QSlider组合使用
#define RULER_RATIO 100.0f
const int nMin = 10;
  const int nMax = 3000;
  const double dSingleStep = 0.01;
  QDoubleSpinBox *zoomSpinBox = new QDoubleSpinBox(this);
  zoomSpinBox->setRange(nMin / RULER_RATIO, nMax / RULER_RATIO);
  zoomSpinBox->setSingleStep(dSingleStep); //步长
  zoomSpinBox->setDecimals(2); //两位小数
    QSlider *zoomSlider = new QSlider(this);
    zoomSlider->setRange(nMin, nMax); //刻度滑块大小的取值范围;与宏定义RULER_RATIO紧密相连
    zoomSlider->setValue(RULER_RATIO);
    zoomSlider->setFixedWidth(200);
    zoomSlider->setToolTip(tr("调整帧的宽度"));
    zoomSlider->setOrientation(Qt::Horizontal);
    zoomSlider->setFocusPolicy(Qt::TabFocus);
//信号槽相互改变
  //如果微调框是int型
  //connect(zoomSpinBox, SIGNAL(valueChanged(int)), zoomSlider, SLOT(setValue(int)));
  //connect(zoomSlider, SIGNAL(valueChanged(int)), zoomSpinBox, SLOT(setValue(int)));
  //如果微调框是double型
  connect(zoomSpinBox, static_cast<void(QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged), zoomSlider, [=](double v)
  {
    zoomSlider->setValue(v * RULER_RATIO);
  });
  connect(zoomSpinBox, static_cast<void(QDoubleSpinBox::*)(const QString &)>(&QDoubleSpinBox::valueChanged), zoomSlider, [=](const QString &text)
  {
    //double d = zoomSpinBox->valueFromText(text);
    //小数转QString,保留2位小数
    //QString str = QString::number(d, 'f', 2);
  });
  //滑块
    connect(zoomSlider, &QSlider::valueChanged, mTracks, &TimeLineCells::setFrameSize);
    connect(zoomSlider, &QSlider::valueChanged, this, [=](int v) {
    zoomSpinBox->setValue(v / RULER_RATIO);
    });
相关文章
|
6月前
|
算法 数据可视化 程序员
【Qt UI】调色板QPalette类在Qt编程中的应用
【Qt UI】调色板QPalette类在Qt编程中的应用
190 0
|
3月前
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Combo Box的使用及说明
【Qt 学习笔记】Qt常用控件 | 输入类控件 | Combo Box的使用及说明
427 0
|
6月前
|
数据库 开发者 Windows
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-2
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
6月前
|
XML 设计模式 JSON
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-1
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
6月前
|
算法 C++ UED
QML布局:如何恰当设置间隙与合理布局 (QML Layout: Proper Spacing and Alignment)
QML布局:如何恰当设置间隙与合理布局 (QML Layout: Proper Spacing and Alignment)
976 0
|
6月前
QListWidget中添加QListWidgetItem的几种形式
QListWidget中添加QListWidgetItem的几种形式
《QT从基础到进阶·二十一》QGraphicsView、QGraphicsScene和QGraphicsItem坐标关系和应用
《QT从基础到进阶·二十一》QGraphicsView、QGraphicsScene和QGraphicsItem坐标关系和应用
682 0
《QT从基础到进阶·二十一》QGraphicsView、QGraphicsScene和QGraphicsItem坐标关系和应用
|
C# 图形学
Winform控件优化之Paint事件实现圆角组件(提取绘制圆角的扩展方法)
Paint事件方法中实现圆角控件不要通过事件参数`e.ClipRectangle`获取控件区域范围,原因见最后介绍;注意设置控件背景透明(参见[Winform控件优化之背景透明那些事2...
831 0
Winform控件优化之Paint事件实现圆角组件(提取绘制圆角的扩展方法)
《QT从基础到进阶·十》QTableView,QTableWidget,QLineEdit设置只读和输入限制
《QT从基础到进阶·十》QTableView,QTableWidget,QLineEdit设置只读和输入限制
321 0
|
存储 Cloud Native Linux
Qt QSlider样式
Qt QSlider样式