gpt4 book ai didi

qt - 如何使用双值更改 QSlider

转载 作者:行者123 更新时间:2023-12-02 18:19:17 25 4
gpt4 key购买 nike

我的问题是,我似乎无法让我的 QSlider 使用 double 值而不是整数,因为我需要让它返回 double 值到 QLineEdit,并在我将一些值放入 QLineEdit 时设置它自己的值。编辑。

最佳答案

当我还是一个 Qt 初学者时,我从 this tutorial 开始。 。它有点旧(它指的是 Qt4.1),但它足以让我入门!

我整理了一个简单的示例应用程序,可以向您展示从哪里开始...也许您会发现它很有帮助!

#include <QApplication>
#include <QtGui>
#include <QVBoxLayout>
#include <QSlider>
#include <QLabel>

class DoubleSlider : public QSlider {
Q_OBJECT

public:
DoubleSlider(QWidget *parent = 0) : QSlider(parent) {
connect(this, SIGNAL(valueChanged(int)),
this, SLOT(notifyValueChanged(int)));
}

signals:
void doubleValueChanged(double value);

public slots:
void notifyValueChanged(int value) {
double doubleValue = value / 10.0;
emit doubleValueChanged(doubleValue);
}
};

class Test : public QWidget {
Q_OBJECT
public:
Test(QWidget *parent = 0) : QWidget(parent),
m_slider(new DoubleSlider()),
m_label(new QLabel())
{
m_slider->setOrientation(Qt::Horizontal);
m_slider->setRange(0, 100);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(m_slider);
layout->addWidget(m_label);
connect(m_slider, SIGNAL(doubleValueChanged(double)),
this, SLOT(updateLabelValue(double)));
updateLabelValue(m_slider->value());
}

public slots:
void updateLabelValue(double value) {
m_label->setText(QString::number(value, 'f', 2));
}

private:
QSlider *m_slider;
QLabel *m_label;
};

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

Test *wid = new Test();
wid->show();

return a.exec();
}

#include "main.moc"

关于qt - 如何使用双值更改 QSlider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19003369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com