#ifndef MYDRAGQT_H
#define MYDRAGQT_H
#include <QtWidgets/QWidget>
#include "ui_mydragqt.h"
class MyDragQt : public QWidget
{
Q_OBJECT
public:
MyDragQt(QWidget *parent = 0);
~MyDragQt();
private:
Ui::MyDragQtClass ui;
private:
void paintEvent(QPaintEvent*);
void mousePressEvent (QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
private:
//辅助函数
int calcPosition(const QPoint& pt);
void setCursorType(int value);
private:
bool m_bLeftMouseButtonPressed;
int m_lastPosition;
QPoint m_ptLast;
Qt::CursorShape m_currentCursor;
};
#endif // MYDRAGQT_H
实现:
#include "mydragqt.h"
#include <QPainter>
#include <QMouseEvent>
#include <QDebug>
namespace
{
const int g_padding = 4;
int helperCalcPosition(int pos, int range)
{
return (pos
Qt窗口拖动与大小调整实现精简版

本文介绍了如何简洁地实现Qt窗口的拖动和大小改变功能,通过优化代码,目标是减少不必要的成员变量。后续将继续进行优化。
最低0.47元/天 解锁文章
7672

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



