Моя проблема заключается в том, что я просто не могу заставить свою QSlider работать с двойными значениями вместо целого числа, потому что мне нужно заставить его возвращать двойные значения в QLineEdit, а также устанавливать собственного значения, когда я вносил некоторое значение в редактирование.Как изменить QSlider с двойными значениями
7
A
ответ
5
Когда я был новичком 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"
3
Вы можете просто разделить значение ползунка на некоторую константу. Например:
const int dpi = 10; // Any constant 10^n
int slideVal = 57; // Integer value from slider
double realVal = double(slideVal/dpi); // float value
Смежные вопросы
- 1. JSlider с близкими двойными значениями
- 2. iOS - Операции с двойными значениями
- 3. Сортировать ArrayList двойными значениями
- 4. Как построить график с двойными значениями даты?
- 5. Junit тестирование для hashMap с двойными значениями
- 6. Диаграмма с двойными пончиками с отрицательными значениями
- 7. Как изменить цвет ручки на QSlider
- 8. многоклассовая классификация с двойными значениями и scikit
- 9. Java Работа с двойными значениями, имеющие E
- 10. Переопределение HashCode() в Java с двойными значениями
- 11. OpenCV - gaussianKernel с фильтром2D и двойными значениями
- 12. NSPredicate не работает с двойными значениями (% f)?
- 13. Найти выбросы в группе с двойными значениями
- 14. Выберите значения с двойными максимальными значениями sql
- 15. Наполнения двойного массива с двойными значениями
- 16. Java MethodOverloading ошибка с двойными значениями
- 17. выпуск в делении с двойными значениями
- 18. Как сделать работу ng-модели с двойными значениями?
- 19. WPF DataGrid: как показать объект с двойными значениями
- 20. Как я получаю Arraylist с не двойными значениями?
- 21. создание MAC как QSlider
- 22. Sql Query Между двумя двойными значениями
- 23. разница высчитывает между двумя двойными значениями точно
- 24. QSlider - как цвет пространство
- 25. WPF: UpdateSourceTrigger = проблема с PropertyChanged с двойными значениями
- 26. QSlider stepping?
- 27. Анализировать выражение с двойными значениями коэффициентов в mathdotnet
- 28. ArcObjects: сохранение IRaster с двойными значениями, отображаемыми в цвета
- 29. Добавление QSlider с использованием Qt
- 30. JSON.net Ошибка десериализации с двойными значениями в json
Ну, я видел это решение раньше, и я нашел его самым легким, но мой учитель хотел, чтобы я практиковал сигналы и слоты, поэтому я бы предпочел добавлять пользовательские сигналы и слоты. Но спасибо вам в любом случае! –
@ user2814864 Идея вашего учителя тоже хороша. Вы можете создать свой собственный класс QObject, который будет повторно транслировать сигналы QSlider', но с аргументами 'double'. – vahancho
@ vahancho точно, но проблема в том, что я все еще новичок в программировании и Qt, и у меня нет реальных идей о том, как это сделать. –