使用Qt Horizontalslider更改文本编辑的值
我正在使用Qt5开发GUI。我想知道如何更改或设置使用Qt Horizontalslider更改文本编辑的值,qt,Qt,我正在使用Qt5开发GUI。我想知道如何更改或设置文本编辑的值,它使用水平滑块获得一些双值 我曾尝试使用Signals/Slots方法将水平滑块连接到文本编辑,但效果不佳 下面是一个例子。使用下一个实现创建新类MyWindow: #include <QSlider> #include <QLayout> #include <QLineEdit> #include <QDebug> #include <QWidget> const fl
文本编辑
的值,它使用水平滑块
获得一些双值
我曾尝试使用Signals/Slots方法将
水平滑块
连接到文本编辑
,但效果不佳 下面是一个例子。使用下一个实现创建新类MyWindow
:
#include <QSlider>
#include <QLayout>
#include <QLineEdit>
#include <QDebug>
#include <QWidget>
const float MIN_VALUE = 0;
const float MAX_VALUE = 2;
const unsigned STEPS = 13;
class MyWindow : public QWidget {
Q_OBJECT
private:
QVBoxLayout *m_layout;
QSlider *m_slider;
QLineEdit *m_textEdit;
public:
explicit MyWindow(QWidget *parent = 0): QWidget(parent)
{
m_layout = new QVBoxLayout(this);
// Create horizontal slider and prepare it
// is it can change in range [MIN_VALUE; MAX_VALUE * STEPS]
m_slider = new QSlider(Qt::Horizontal, this);
m_slider->setMinimum(MIN_VALUE);
m_slider->setMaximum(MAX_VALUE * STEPS);
m_layout->addWidget(m_slider);
m_textEdit = new QLineEdit(this);
m_layout->addWidget(m_textEdit);
this->setLayout(m_layout);
}
~MyWindow(){}
void setupWindow() {
connect(m_slider, SIGNAL(valueChanged(int)),
this, SLOT(updateTextOnSliderChange(int)));
}
public slots:
void updateTextOnSliderChange(int position) {
// Calculate float position of slider
float positionF = position / float(STEPS);
m_textEdit->setText( QString::number(positionF, 'f', 2) );
}
};
代码是非常自我解释的。所以,主要的想法是使用典型的滑块保持其在int
中的位置,设置滑块的最小和最大位置,每次需要在float
中获得滑块位置时,只需像位置/点那样计算它
祝你学习好运 非常感谢,我会试试的不客气,你好!如果它能帮助您解决ypur问题,请将amswer标记为已接受。
#include <QApplication>
#include "mywindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWindow *window = new MyWindow;
window->setupWindow();
window->show();
return a.exec();
}