QGraphicsView程序基本结构和功能实现
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLabel>
#include<QGraphicsScene>
#include<QGraphicsItem>
#include"qwgraphicsview.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
private:
QGraphicsScene *scene;
QLabel *labViewCord;
QLabel *labSceneCord;
QLabel *labItemCord;
void iniGraphicsSystem(); //创建Graphics View的各项
protected:
void resizeEvent(QResizeEvent *event);//重定义了resizeEvent()事件
private slots:
void on_mouseMovePoint(QPoint point);
void on_mouseClicked(QPoint point);
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
qwgraphicsview.h
#ifndef QWGRAPHICSVIEW_H
#define QWGRAPHICSVIEW_H
#include<QGraphicsView>
#include <QObject>
#include<qwgraphicsview.h>
#include"mainwindow.h"
/**
* 从QGraphicsView类继承一个类
* 实现mouseMoveEvent和mousePressEvent事件
* 把鼠标事件转换为信号,在主程序中设计槽函数响应这些鼠标事件
**/
class QWGraphicsView : public QGraphicsView
{
Q_OBJECT
protected:
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *ev