initial commit
This commit is contained in:
60
client/gui/params/ParamControls.h
Normal file
60
client/gui/params/ParamControls.h
Normal file
@@ -0,0 +1,60 @@
|
||||
#pragma once
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
class QDoubleSpinBox;
|
||||
class QSlider;
|
||||
class QLabel;
|
||||
|
||||
namespace gui {
|
||||
|
||||
// 0..1 浮点参数:Slider + DoubleSpinBox(可复用)
|
||||
class Float01ParamControl final : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit Float01ParamControl(QWidget* parent = nullptr);
|
||||
|
||||
void setValue01(double v);
|
||||
double value01() const;
|
||||
|
||||
void setEnabled(bool on);
|
||||
|
||||
signals:
|
||||
void valueChanged01(double v);
|
||||
|
||||
private:
|
||||
void syncFromSlider();
|
||||
void syncFromSpin();
|
||||
|
||||
QSlider* m_slider = nullptr;
|
||||
QDoubleSpinBox* m_spin = nullptr;
|
||||
bool m_block = false;
|
||||
};
|
||||
|
||||
// Vec2 参数:两个 DoubleSpinBox(可复用)
|
||||
class Vec2ParamControl final : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit Vec2ParamControl(QWidget* parent = nullptr);
|
||||
|
||||
void setValue(double x, double y);
|
||||
double x() const;
|
||||
double y() const;
|
||||
|
||||
void setEnabled(bool on);
|
||||
|
||||
signals:
|
||||
void valueChanged(double x, double y);
|
||||
|
||||
private:
|
||||
void emitIfChanged();
|
||||
|
||||
QDoubleSpinBox* m_x = nullptr;
|
||||
QDoubleSpinBox* m_y = nullptr;
|
||||
bool m_block = false;
|
||||
double m_lastX = 0.0;
|
||||
double m_lastY = 0.0;
|
||||
};
|
||||
|
||||
} // namespace gui
|
||||
|
||||
Reference in New Issue
Block a user