//头文件
#pragma once
#include <QWidget>
#include "ui_Dlg_DayTime.h"
#include <QPainter>
#include <QJsonArray>
#include <QPixmap>
#include <QMap>
#define PADDING 6
enum Direction { UP = 0, DOWN = 1, LEFT, RIGHT, LEFTTOP, LEFTBOTTOM, RIGHTBOTTOM, RIGHTTOP, NONE };
class Dlg_DayTime : public QWidget
{
Q_OBJECT
public:
Dlg_DayTime(QWidget *parent = Q_NULLPTR);
~Dlg_DayTime();
void paintEvent(QPaintEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void region(const QPoint &cursorGlobalPoint);
private:
Ui::Dlg_DayTime ui;
QJsonArray m_jsonArr;
QPoint m_curStartPos;
QPoint m_curEndPos;
QPoint m_tempPos;
QPoint m_movePos;
bool m_isPressed;
int m_nIndex;
QMap<int, QRect> m_map;
Direction dir; // 窗口大小改变时,记录改变方向
int _startX;
};
//源文件
#include "Dlg_DayTime.h"
#include <QMouseEvent>
#include <QJsonDocument>
#include <QDebug>
Dlg_DayTime::Dlg_DayTime(QWidget *parent)
: QWidget(parent), m_isPressed(false), m_nIndex(-1), m_movePos(0, 0)
,_startX(0)
{
ui.setupUi(this);
setPalette(QPalette(Qt::gray));
this->setMouseTracking(true);
setAutoFillBackground(true);
setCursor(QCursor(Qt::ArrowCursor));
}
void Dlg_DayTime::region(const QPoint &cursorGlobalPoint)
{
int nIndex = -1;
for (int i = 0; i < m_map.size(); i++)
{
QRect tempRec = m_map[i];
if (tempRec.contains(cursorGlobalPoint))
{
nIndex = i;
break;
&n