53 lines
1.5 KiB
C
53 lines
1.5 KiB
C
|
#ifndef GRAPHWINDOW_H
|
|||
|
#define GRAPHWINDOW_H
|
|||
|
|
|||
|
#include <QDialog>
|
|||
|
#include <vartype.h>
|
|||
|
#include <qtimer.h>
|
|||
|
#include <QKeyEvent>
|
|||
|
#include <QPainter>
|
|||
|
#include <qdebug.h>
|
|||
|
#include <qmessagebox.h>
|
|||
|
|
|||
|
namespace Ui {
|
|||
|
class GraphWindow;
|
|||
|
}
|
|||
|
|
|||
|
class GraphWindow : public QDialog
|
|||
|
{
|
|||
|
Q_OBJECT
|
|||
|
|
|||
|
public:
|
|||
|
explicit GraphWindow(QWidget *parent = nullptr);
|
|||
|
~GraphWindow();
|
|||
|
void setVarList(QList<VarInfo> *list);
|
|||
|
void setChosenIndex(int varIndex);
|
|||
|
void paintGraph(QWidget *canvas);
|
|||
|
bool eventFilter(QObject *watched, QEvent *event);
|
|||
|
void wheelEvent(QWheelEvent *event);
|
|||
|
void keyPressEvent(QKeyEvent *event);
|
|||
|
void keyReleaseEvent(QKeyEvent *event);
|
|||
|
void mousePressEvent(QMouseEvent *event);
|
|||
|
void mouseReleaseEvent(QMouseEvent *event);
|
|||
|
void mouseMoveEvent(QMouseEvent *event);
|
|||
|
|
|||
|
private slots:
|
|||
|
void onTrig();
|
|||
|
void on_btn_help_clicked();
|
|||
|
|
|||
|
private:
|
|||
|
static const int VERT_DIV=6; //纵向划分的格数
|
|||
|
static const int HORI_DIV=10; //横向划分的格数
|
|||
|
Ui::GraphWindow *ui;
|
|||
|
QList<VarInfo> *varList; //变量列表指针,需外部设置
|
|||
|
QTimer *trigTimer; //定时器用于触发图像更新
|
|||
|
bool ctrlFlag=false,shiftFlag=false,altFlag=false; //组合键按下标志
|
|||
|
bool looking=false; //当前是否正在查看变量
|
|||
|
bool dragging=false; //当前是否正在拖动画布
|
|||
|
QPoint mousePos,lastMousePos; //拖拽时的鼠标坐标
|
|||
|
int chosenVarIndex=-1; //当前选中的变量在列表中的索引(未选中时-1)
|
|||
|
void updateCursor();
|
|||
|
};
|
|||
|
|
|||
|
#endif // GRAPHWINDOW_H
|