该控件继承QWidget, 实现了左右上下四种形式的坐标轴控件。
可以设置固定间隔或自动选择间隔
可以设置最小间隔
开放一个槽来动态调整坐标轴的范围
处理了边缘刻度的显示
/************************************************************************
* 版权所有 (C) 2012-2015, liang1057@yahoo.com.cn
类声明: 坐标轴控件
************************************************************************/
/** @brief 坐标轴控件
*
* @details 坐标轴控件 只有刻度和数字,数字可以隐藏(用来显示其他需要显示的刻度值)
*/
class uiAxis : public QWidget
{
Q_OBJECT
public:
/** @brief 坐标轴类型
*
* @details 坐标轴类型
*/
enum AXISTYPE{
LEFT_AXIS = 0,
TOP_AXIS,
RIGHT_AXIS,
BOTTOM_AXIS
};
/** @brief 构造函数 */
uiAxis(AXISTYPE type = BOTTOM_AXIS, QWidget *parent = 0);
/** @brief 析构函数 */
~uiAxis(void);
/** @brief 设置坐标轴的范围 */
void setScop(double minValue, double maxValue);
/** @brief 获取坐标轴的范围 */
void getScop(double& minValue,double& maxValue);
/** @brief 获取坐标轴的范围 */
double getMinValue();
double getMaxValue();
/** @brief 设置坐标轴的类型 */
void setAxisType(AXISTYPE type);
/** @brief 坐标轴的类型 */
AXISTYPE getAxisType();
/** @brief 设置最小刻度(小刻度的最小间隔) */
void setMinInterval(double value);
/** @brief 设置自动间隔 */
void setAutoScale(bool val=true);
/** @brief 设置固定间隔 */
void setSettedScale(bool val=true);
/** @brief 设置坐标轴的绘制范围, 像素值 */
void setBoundary(int left, int right, int top, int bottom);
void getBoundary(int& left, int& right, int& top, int& bottom);
2019-12-21 21:02:51
4KB
Qt
坐标轴
1