first commit

This commit is contained in:
2026-04-29 14:10:10 +08:00
commit b28556d43d
1558 changed files with 241386 additions and 0 deletions
+77
View File
@@ -0,0 +1,77 @@
#ifndef PICSCENE_H
#define PICSCENE_H
#include <QGraphicsScene>
#include "pictextitem.h"
#include <QGraphicsSceneMouseEvent>
#include <QPoint>
QT_BEGIN_NAMESPACE
class QGraphicsSceneMouseEvent;
class QMenu;
class QPointF;
class QGraphicsLineItem;
class QFont;
class QGraphicsTextItem;
class QColor;
QT_END_NAMESPACE
class PicScene : public QGraphicsScene
{
Q_OBJECT
public:
enum Mode { InsertItem, InsertLine, InsertText, InsertPic, MoveItem };
explicit PicScene(QObject *parent = 0);
QFont font() const
{ return myFont; }
QColor textColor() const
{ return myTextColor; }
QColor itemColor() const
{ return myItemColor; }
QColor lineColor() const
{ return myLineColor; }
void setLineColor(const QColor &color);
void setTextColor(const QColor &color);
void setItemColor(const QColor &color);
void setFont(const QFont &font);
void keyPressEvent(QKeyEvent *event);
public slots:
void setMode(Mode mode);
void setIsdrawBackground(bool newIsdrawBackground);
signals:
void textInserted(QGraphicsTextItem *item);
void itemSelected(QGraphicsItem *item);
void xmlContentChanged();
void showTextWidthHeight();
void adjustItemsPos();
void focusedItemPosChanged(QPoint p);
private slots:
void onFocusItemChanged(QGraphicsItem *newFocusItem, QGraphicsItem *oldFocusItem, Qt::FocusReason reason);
void onFocusedItemPosChanged();
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent);
void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent);
void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent);
void drawBackground(QPainter *painter, const QRectF &rect);
private:
bool isItemChange(int type);
QMenu *myItemMenu;
Mode myMode;
bool leftButtonDown;
QPointF startPoint;
QGraphicsLineItem *line;
QFont myFont;
PicTextItem *textItem;
QColor myTextColor;
QColor myItemColor;
QColor myLineColor;
bool IsdrawBackground;
QGraphicsObject* currFocusItem;
};
#endif // PICSCENE_H