QT开发中文网

qt实现双滑块

以下是QT实现双滑块的示例代码,使用了QSlider控件:

#include <QtWidgets>

class DoubleSlider : public QWidget {
public:
  DoubleSlider(QWidget *parent = nullptr)
      : QWidget(parent) {
    left_slider_ = new QSlider(Qt::Horizontal, this);
    right_slider_ = new QSlider(Qt::Horizontal, this);

    connect(left_slider_, &QSlider::valueChanged, this,
            &DoubleSlider::leftValueChanged);
    connect(right_slider_, &QSlider::valueChanged, this,
            &DoubleSlider::rightValueChanged);

    QHBoxLayout *layout = new QHBoxLayout(this);
    layout->addWidget(left_slider_);
    layout->addWidget(right_slider_);
  }

  void setRange(int min, int max) {
    left_slider_->setRange(min, max);
    right_slider_->setRange(min, max);
  }

signals:
  void leftValueChanged(int value);
  void rightValueChanged(int value);

private:
  QSlider *left_slider_;
  QSlider *right_slider_;
};

int main(int argc, char **argv) {
  QApplication app(argc, argv);

  DoubleSlider double_slider;
  double_slider.setRange(0, 100);

  QObject::connect(&double_slider, &DoubleSlider::leftValueChanged,
                   [](int value) { qDebug() << "Left:" << value; });
  QObject::connect(&double_slider, &DoubleSlider::rightValueChanged,
                   [](int value) { qDebug() << "Right:" << value; });

  double_slider.show();

  return app.exec();
}

在该示例中,我们定义了一个名为DoubleSlider的自定义QWidget类。该类包含两个水平方向的QSlider控件,并连接它们的valueChanged信号到相应的槽函数中。setRange函数用于设置QSlider的最小值和最大值。

main函数中,我们创建了一个DoubleSlider对象,并为其设置范围。我们还使用QObject::connect函数连接了leftValueChanged和rightValueChanged信号到lambda表达式,以便在控件的值发生变化时输出调试信息。最后,我们显示了该DoubleSlider对象并进入应用程序事件循环中。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=2547

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?