• 7735阅读
  • 2回复

做了个GRAPH控件~ [复制链接]

上一主题 下一主题
离线jiamengyu
 
图酷模式  只看楼主 倒序阅读 楼主  发表于: 2010-04-10

  只需一个头文件和实现文件,已打包成一个普通控件,不需要再写任何派生类。提供多种属性可供设置(包括X、Y轴自动范围调节、点、线的形状颜色等等),如下:
public slots:
    void mousePressEvent(QMouseEvent* e);
    void mouseReleaseEvent(QMouseEvent* e);
    void mouseMoveEvent(QMouseEvent* e);
signals:
    void holdmousepressd( QPoint&);//触摸屏长按事件
    
public:
    enum
    {
        ATTR_NUM_XTicks = 0,//int
        ATTR_NUM_YTicks,//int
        ATTR_MIN_X,//double
        ATTR_MIN_Y,//double
        ATTR_SPAN_X,//double
        ATTR_SPAN_Y,//double
        ATTR_X_PRECISION,//int
        ATTR_Y_PRECISION,//int
        ATTR_COLOR_GRID,//QColor
        ATTR_COLOR_EXTEND,//QColor
        ATTR_COLOR_FRAME,//QColor
        ATTR_COLOR_NUM,//QColor
        ATTR_GRAPHRECT_COLOR,//QColor
        ATTR_NO_RECTCOLOR,//bool
        ATTR_BACKGROUD_COLOR,//QColor
        ATTR_POINT_COLOR,//QColor
        ATTR_GRID_STYLE,//int
        ATTR_AUTOSCALE,//bool
        ATTR_GRID_COLOR,
        ATTR_TEXT_COLOR
    };
    enum _axisnum
    {
        X = 0,
        Y
    };
    myQGraph( QWidget* parent=0, const char* name=0);
    ~myQGraph();
    void showGraph();
    void setGeometry( const QRect & );
    void setPos(int x, int y, int w, int h);
    void setBackgroudPicture( const QPixmap& );
    void setCtrlAttribute(const int& controlAttribute,int controlValue);
    void setGraphRect(const int& leftMargin, const int& topMargin,
        const int& width, const int& height);
    void GetCtrlBoundingRect(int &left, int &top, int &height, int &width);
    void PlotPoint (double x, double y);
    void refresh();
    //void InsertAxisItem (_axisnum axis, char* itemLabel);
    void setaxisNumpos(const int& axis, const QPoint& p);//X和Y轴上的坐标显示相对于短线的位置
};

我的邮箱jiamengyu2004@yahoo.com.cn
离线youyunyehe
只看该作者 1楼 发表于: 2010-04-10
楼主教教我们呀,写个教程,万分感激!!!
离线phoniexhao
只看该作者 2楼 发表于: 2010-05-16
这个东西不错
快速回复
限100 字节
 
上一个 下一个