QPoint和QSize

QPoint类定义了平面上的一个点。

 

一个点由一个x坐标和一个y坐标确定。

坐标类型是QCOORD(一个32位整数)。QCOORD的最小值是QCOORD_MIN(-2147483648),最大值是QCOORD_MAX(2147483647)。

坐标可以通过函数x()和y()来访问,它们可以由setX()和setY()来设置并且由rx()由ry()来参考。

假设一个点p,下面的语句都是等价的:

        p.setX( p.x() + 1 );
        p += QPoint( 1, 0 );
        p.rx()++;
    

一个QPoint也可以用作是一个矢量。QPoint的加法和减法也像矢量一样定义了(每个分量分别的被相加或者相减)。你可以把一个QPoint与一个int或者一个double做乘法或者除法。函数manhattanLength()像对矢量那样给出了QPoint一个比较廉价的长度接近值的说明。

Example:

        //QPoint oldPos在其它什么地方定义过了
        MyWidget::mouseMoveEvent( QMouseEvent *e )
        {
            QPoint vector = e->pos() - oldPos;
            if ( vector.manhattanLength() > 3 )
            ... //鼠标从oldPos移动超过3个象素
        }
    

QPoint可以进行比较得出相等或者不等,并且它们可以写到QStream或者从QStream中读出。

 

也可以参考QPointArrayQSizeQRect图形类图像处理类

 

    QSize定义了一个二维对象的大小。

 

一个大小由一个宽和一个高确定。

坐标类型是QCOORD(和int一样在qwindowdefs.h中定义的)。QCOORD的最小值是QCOORD_MIN(-2147483648),最大值是QCOORD_MAX(2147483647)。

大小可以在构造函数中设置并且可以用setWidth()和setHeight()来修改,或者使用operator+=()、operator-=()、operator*=()和operator/=()等等。你可以使用transpose()来交换宽和高。你可以使用expandedTo()来得到宽和高为两个大小的宽和高的最大值的大小,并且可以使用boundedTo()来得到宽和高为两个大小的宽和高的最小值的大小。

 

也可以参考QPointQRect图形类图像处理类

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面这段代码什么意思class CaptureDialog : public QWidget { Q_OBJECT public: explicit CaptureDialog(QWidget *parent = 0); ~CaptureDialog(); void region(const QPoint &cursorGlobalPoint); void mouseMoveEvent(QMouseEvent *); void mouseReleaseEvent(QMouseEvent *); void mousePressEvent(QMouseEvent *); void setButton(); void setPixmap(QPixmap pixmap); void setGroupBoxSize(QSize size); QRect getNormalRect(){return normalRect; } private: enum Direction { UP=0, DOWN=1, LEFT, RIGHT, LEFTTOP, LEFTBOTTOM, RIGHTBOTTOM, RIGHTTOP, NONE }; const int PADDING ; const int buttonWidth ; const int buttonHeight ; QRect normalRect; //保存最大化以前的大小,因为最小化以前this->rect()已经变成了全屏时的rect() bool isLeftPressDown; // 判断左键是否按下 QPoint dragPosition; // 窗口移动拖动时需要记住的点 Direction dir; // 窗口大小改变时,记录改变方向 QPushButton * closeButton; QPushButton * minimumButton ; QPushButton * maximumButton ; QWidget* groupBox; int fullScreenWidth; int fullScreenHeight; int clickCount; InCaptureLabel * label; QPixmap pixmap; InCaptureWidget* bottomWidget; QLabel * saveDirLable; QLineEdit *lineEdit; QPushButton * browseButton; QLabel* saveTypeLabel; QComboBox * typeComboBox; QLabel* saveNameLabel; QLineEdit * saveNameLineEdit; QPushButton * saveButton; QPushButton * saveToClipBoard; static QPoint Position; QSize videoWidgetSize; public slots: void slotSignalMovePoint(QPoint point); void slotBottomWidgetMouseLeftDown(); void slotSaveBottonClicked(); void slotSaveToClipBoard(); void slotBrowseButtonClicked(); };
05-05

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值