91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-13
  • 語言: 其他
  • 標簽: Qt??坐標軸??

資源簡介

該控件繼承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);

資源截圖

代碼片段和文件信息

#include?
#include?“QsGui/Gui/uiAxis.h“


uiAxis::uiAxis(?QWidget?*parent?/*=?0*/AXISTYPE?type)
:QWidget(parent)
{
????m_minValue?=?-10;?
????m_maxValue?=?10;
????m_hasMinInterval?=?false;
????m_minInterval?=?1;
????m_left=?0;
????m_right?=?0;
????m_top?=?0;
????m_bottom?=?0;
????m_lineLength?=?10;
????m_axisText?=?““;

????m_axisType?=?type;
????m_isAutoScale?=?true;
????setMinimumSize(40?40);
}
uiAxis::~uiAxis(void)
{
}

void?uiAxis::paintEvent(?QPaintEvent?*event?)
{
????paintAxis();
}

void?uiAxis::setScop(?double?minValue?double?maxValue?)
{
????m_minValue?=?minValue;
????m_maxValue?=?maxValue;
????generateAxis();
}

void?uiAxis::getScop(?double&?minValuedouble&?maxValue?)
{
????minValue?=?m_minValue;
????maxValue?=?m_maxValue;
}

double?uiAxis::getMinValue()
{
????return?m_minValue;
}

double?uiAxis::getMaxValue()
{
????return?m_maxValue;
}

void?uiAxis::setAxisType(?AXISTYPE?type?)
{
????m_axisType?=?type;

//?????if(m_axisType?==?BOTTOM_AXIS?||?m_axisType?==?TOP_AXIS)
//?????{
//?????????setMinimumHeight(30);
//?????????setMaximumHeight(100);
//?????}
//?????else
//?????{
//?????????setMinimumWidth(50);
//?????????setMaximumWidth(100);
//?????}
}

uiAxis::AXISTYPE?uiAxis::getAxisType()
{
????return?m_axisType;
}

void?uiAxis::setMinInterval(?double?value?)
{
????m_minInterval?=?value;
????m_hasMinInterval?=?true;
}

void?uiAxis::setBoundary(?int?left?int?right?int?top?int?bottom?)
{
????m_left?=?left;
????m_right?=?right;
????m_top?=?top;
????m_bottom?=?bottom;
}

void?uiAxis::getBoundary(?int&?left?int&?right?int&?top?int&?bottom?)
{
????left?=?m_left;
????right?=?m_right;
????top?=?m_top;
????bottom?=?m_bottom;
}

void?uiAxis::setAxisText(?QString?txt?)
{
????m_axisText?=?txt;
}

void?uiAxis::onMinMaxChanged(?double?minValue?double?maxValue?)
{
????setScop(minValue?maxValue);
????update();
}

void?uiAxis::setTextVisible(?bool?val?)
{
????m_textVisible?=?val;
????update();
}

void?uiAxis::setAxisTextVisible(?bool?val?)
{
????m_axisVisible?=?val;
????update();
}

QList?uiAxis::getNPos()
{
????return?m_nPos;
}

QList?uiAxis::getDPos()
{
????return?m_dPos;
}

void?uiAxis::generateAxis()
{
????double?isMinMax?=?1;?//?如果是min????if?(m_maxValue????????isMinMax?=?-1;
????else?if(m_maxValue==m_minValue)?
????????return;??//?

????if(m_axisType?==?BOTTOM_AXIS?||?m_axisType?==?TOP_AXIS)
????????axisLength?=?width()?-?m_left?-?m_right;
????else
????????axisLength?=?height()?-?m_top?-?m_bottom;

????if?(m_isAutoScale)?//?如果自動取值的話
????????calcAutoScale();
????else
????????calcSettedScale();

????if?(dDelta?==0)
????????return;


????float?posStart?=?(dStart-m_minValue)*?axisLength/(m_maxValue-m_minValue);

????switch?(m_axisType)
????{
????case?LEFT_AXIS:
????????????m_pStart?=?QPointF(width()-m_right?posStart);?//?左坐標軸的刻度與右側對齊
????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????11117??2013-05-06?12:07??uiAxis.cpp

?????文件???????3477??2013-05-06?12:09??uiAxis.h

-----------?---------??----------?-----??----

????????????????14594????????????????????2


評論

共有 條評論