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);
    });
相关文章
|
9月前
|
算法 数据可视化 程序员
【Qt UI】调色板QPalette类在Qt编程中的应用
【Qt UI】调色板QPalette类在Qt编程中的应用
294 0
|
C# 图形学
Winform控件优化之Paint事件实现圆角组件(提取绘制圆角的扩展方法)
Paint事件方法中实现圆角控件不要通过事件参数`e.ClipRectangle`获取控件区域范围,原因见最后介绍;注意设置控件背景透明(参见[Winform控件优化之背景透明那些事2...
881 0
Winform控件优化之Paint事件实现圆角组件(提取绘制圆角的扩展方法)
|
9月前
|
索引
[Qt5&控件] 下拉框ComBoBox和层叠窗口StackedWidget控件组合使用
[Qt5&控件] 下拉框ComBoBox和层叠窗口StackedWidget控件组合使用
204 0
Qt实用技巧:对QPushButton(等类似透明有黑色背景的QWidget实现透明/半透明的方法
Qt实用技巧:对QPushButton(等类似透明有黑色背景的QWidget实现透明/半透明的方法
Qt实用技巧:对QPushButton(等类似透明有黑色背景的QWidget实现透明/半透明的方法
WPF-样式问题-ListBox或ListView中子项全填充去除边线问题
WPF-样式问题-ListBox或ListView中子项全填充去除边线问题
222 0
|
Android开发
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(二)
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(二)
557 0
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(二)
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(一)
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(一)
243 0
【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )(一)
QT软件开发: QGraphicsView设置无边框背景透明
QT软件开发: QGraphicsView设置无边框背景透明
747 0
QT软件开发: QGraphicsView设置无边框背景透明
QT软件开发: QWidget窗口绘制圆角
QT软件开发: QWidget窗口绘制圆角
866 0
QT软件开发: QWidget窗口绘制圆角
QT软件开发: 设置QSlider样式
QT软件开发: 设置QSlider样式
649 0
QT软件开发: 设置QSlider样式