diagramview.h

来自「qt3.8开发的例子, 做linux下qt编程可以参考」· C头文件 代码 · 共 88 行

H
88
字号
#ifndef DIAGRAMVIEW_H#define DIAGRAMVIEW_H#include <qcanvas.h>class QAction;class DiagramView : public QCanvasView{    Q_OBJECTpublic:    DiagramView(QCanvas *canvas, QWidget *parent = 0,                const char *name = 0);public slots:    void cut();    void copy();    void paste();    void del();    void properties();    void addBox();    void addLine();    void bringToFront();    void sendToBack();protected:    void contentsContextMenuEvent(QContextMenuEvent *event);    void contentsMousePressEvent(QMouseEvent *event);    void contentsMouseMoveEvent(QMouseEvent *event);    void contentsMouseDoubleClickEvent(QMouseEvent *event);private:    void createActions();    void addItem(QCanvasItem *item);    void setActiveItem(QCanvasItem *item);    void showNewItem(QCanvasItem *item);    QCanvasItem *pendingItem;    QCanvasItem *activeItem;    QPoint lastPos;    int minZ;    int maxZ;    QAction *cutAct;    QAction *copyAct;    QAction *pasteAct;    QAction *deleteAct;    QAction *propertiesAct;    QAction *addBoxAct;    QAction *addLineAct;    QAction *bringToFrontAct;    QAction *sendToBackAct;};class DiagramBox : public QCanvasRectangle{public:    enum { RTTI = 1001 };    DiagramBox(QCanvas *canvas);    ~DiagramBox();    void setText(const QString &newText);    QString text() const { return str; }    void drawShape(QPainter &painter);    QRect boundingRect() const;    int rtti() const { return RTTI; }private:    QString str;};class DiagramLine : public QCanvasLine{public:    enum { RTTI = 1002 };    DiagramLine(QCanvas *canvas);    ~DiagramLine();    QPoint offset() const { return QPoint((int)x(), (int)y()); }    void drawShape(QPainter &painter);    QPointArray areaPoints() const;    int rtti() const { return RTTI; }};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?