qt的qslider显示小数
Qt的QSlider控件默认只能显示整数值,如果想要显示小数,可以通过以下方法实现:
- 扩展QSlider控件:继承QSlider类,重写paintEvent()方法,在绘制滑块时将整数值转换为小数值进行绘制。
class DecimalSlider : public QSlider
{
Q_OBJECT
public:
DecimalSlider(QWidget* parent = nullptr) : QSlider(parent) {}
protected:
void paintEvent(QPaintEvent* event) override
{
QSlider::paintEvent(event);
QPainter painter(this);
painter.setPen(Qt::black);
qreal value = static_cast<qreal>(this->value()) / this->maximum();
QString text = QString::number(value, 'f', 2); // 将小数值保留两位小数
painter.drawText(rect(), Qt::AlignCenter, text);
}
};
- 使用QSlider的valueChanged()信号和QLabel控件来显示小数值。
QSlider* slider = new QSlider(Qt::Horizontal);
QLabel* label = new QLabel();
QObject::connect(slider, &QSlider::valueChanged, [=](int value) {
qreal decimalValue = static_cast<qreal>(value) / slider->maximum();
label->setText(QString::number(decimalValue, 'f', 2));
});
这两种方法都可以实现在QSlider控件上显示小数值,可以根据实际需求选择使用
原文地址: http://www.cveoy.top/t/topic/iR0v 著作权归作者所有。请勿转载和采集!