用法:
QWidget的话:setGeometry()
Item的话:setPos()
一般大家用的都是 QWidget,所以这里只对 setGeometry() 解释一下
官方文档对 setGeometry() 的解释是:

用法其实很简单:
- x、y 是控件的横纵坐标
- w、h 是控件的宽和高
#ifndef WATERPROGRESSBAR_H
#define WATERPROGRESSBAR_H
#include <QWidget>
class WaterProgressBar : public QWidget//继承QWidget
{
Q_OBJECT
public:
explicit WaterProgressBar(QWidget *parent = nullptr);
void setVaule(int value);
public slots:
void updaterWater();//定时更新,让波浪动起来
protected:
void paintEvent(QPaintEvent *event) override;//自绘控件
//实现左右拖动改变value
void mousePressEvent(QMouseEvent *event) override;
void mouseReleaseEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
private:
int m_value;
qreal m_offset;
bool m_isPressed;
QPoint m_startPoint;
void drawWater(QPainter* painter);//画水波浪
void drawText(QPainter* painter);//画中间数值
void drawBg(QPainter* painter);//画背景
};
#endif // WATERPROGRESSBAR_H
#include "WaterProgressBar.h"
#include <QPainter>
#include <QtMath>
#include <QTimer>
#include <QMo

本文档介绍了一个名为WaterProgressBar的自定义控件,该控件继承自QWidget,用于显示带有水波纹效果的进度条。通过使用setGeometry()设置控件的位置和大小,并利用鼠标事件实现拖动调整进度。代码中详细实现了波浪形进度条的绘制,包括波浪的动画效果、数值显示和背景绘制。此外,还提供了鼠标按下、释放和移动事件的处理,使得用户可以通过拖动来改变进度值。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



