QPoint 類使用整數精度定義平麵點。 更多...
| 頭: |
#include <QPoint>
|
| CMake: |
find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
|
| qmake: |
QT += core
|
此類 相等可比較 .
此類 相等可比較 with QPointF .
注意: 此類的所有函數 可重入 .
| QPoint () | |
| QPoint (int xpos , int ypos ) | |
| bool | isNull () const |
| int | manhattanLength () const |
| int & | rx () |
| int & | ry () |
| void | setX (int x ) |
| void | setY (int y ) |
| CGPoint | toCGPoint () const |
(從 6.4 起)
QPointF
|
toPointF () const |
| QPoint | transposed () const |
| int | x () const |
| int | y () const |
| QPoint & | operator*= (double factor ) |
| QPoint & | operator*= (float factor ) |
| QPoint & | operator*= (int factor ) |
| QPoint & | operator+= (const QPoint & point ) |
| QPoint & | operator-= (const QPoint & point ) |
| QPoint & | operator/= (qreal divisor ) |
| int | dotProduct (const QPoint & p1 , const QPoint & p2 ) |
| bool | operator!= (const QPoint & lhs , const QPoint & rhs ) |
| QPoint | operator* (const QPoint & point , double factor ) |
| QPoint | operator* (const QPoint & point , float factor ) |
| QPoint | operator* (const QPoint & point , int factor ) |
| QPoint | operator* (double factor , const QPoint & point ) |
| QPoint | operator* (float factor , const QPoint & point ) |
| QPoint | operator* (int factor , const QPoint & point ) |
| QPoint | operator+ (const QPoint & point ) |
| QPoint | operator+ (const QPoint & p1 , const QPoint & p2 ) |
| QPoint | operator- (const QPoint & p1 , const QPoint & p2 ) |
| QPoint | operator- (const QPoint & point ) |
| QPoint | operator/ (const QPoint & point , qreal divisor ) |
| QDataStream & | operator<< (QDataStream & stream , const QPoint & point ) |
| bool | operator== (const QPoint & lhs , const QPoint & rhs ) |
| QDataStream & | operator>> (QDataStream & stream , QPoint & point ) |
點是通過 X 坐標和 Y 坐標指定,可以訪問使用
x
() 和
y
() 函數。
isNull
() 函數返迴
true
若 x 和 y 兩者被設為 0。可以設置 (或變更) 坐標使用
setX
() 和
setY
() 函數,或另外的
rx
() 和
ry
() 函數返迴坐標引用 (允許直接操縱)。
給定點 p ,下列語句全部等效:
QPoint p; p.setX(p.x() + 1); p += QPoint(1, 0); p.rx()++;
QPoint 對象還可以用作嚮量:有為嚮量 (每個分量各自相加) 定義加法和減法。QPoint 對象也可以除以或乘以
int
或
qreal
.
此外,QPoint 類提供 manhattanLength () 函數會給齣廉價近似長度為 QPoint 對象按嚮量解釋。最後,QPoint 對象可以被流化及比較。
[constexpr noexcept]
QPoint::
QPoint
()
構造 null 點 (即:采用坐標 (0, 0))
另請參閱 isNull ().
[constexpr noexcept]
QPoint::
QPoint
(
int
xpos
,
int
ypos
)
構造點采用給定坐標 ( xpos , ypos ).
[static constexpr]
int
QPoint::
dotProduct
(const
QPoint
&
p1
, const
QPoint
&
p2
)
QPoint p( 3, 7); QPoint q(-1, 4); int dotProduct = QPoint::dotProduct(p, q); // dotProduct becomes 25
返迴點積為 p1 and p2 .
[constexpr noexcept]
bool
QPoint::
isNull
() const
返迴
true
若 X 和 Y 坐標兩者被設為 0,否則返迴
false
.
[constexpr]
int
QPoint::
manhattanLength
() const
返迴絕對值的和對於 x () 和 y (),傳統稱為從原點到點的嚮量 "曼哈頓長度"。例如:
QPoint oldPosition; MyWidget::mouseMoveEvent(QMouseEvent *event) { QPoint point = event->pos() - oldPosition; if (point.manhattanLength() > 3) // the mouse has moved more than 3 pixels since the oldPosition }
這計算近似真實長度有用且快速:
double trueLength = std::sqrt(std::pow(x(), 2) + std::pow(y(), 2));
"曼哈頓長度" 傳統的興起,是因為這種距離適用於隻能按矩形柵格 (像曼哈頓街道) 旅行的旅行者。
[constexpr noexcept]
int
&QPoint::
rx
()
返迴此點的 X 坐標引用。
使用引用使之可能直接操縱 X。例如:
QPoint p(1, 2); p.rx()--; // p becomes (0, 2)
[constexpr noexcept]
int
&QPoint::
ry
()
返迴此點的 Y 坐標引用。
使用引用使之可能直接操縱 Y。例如:
QPoint p(1, 2); p.ry()++; // p becomes (1, 3)
[constexpr noexcept]
void
QPoint::
setX
(
int
x
)
將此點的 X 坐標設為給定 x 坐標。
[constexpr noexcept]
void
QPoint::
setY
(
int
y
)
將此點的 Y 坐標設為給定 y 坐標。
[noexcept]
CGPoint
QPoint::
toCGPoint
() const
創建 CGPoint 從 QPoint .
另請參閱 QPointF::fromCGPoint ().
[constexpr noexcept, since 6.4]
QPointF
QPoint::
toPointF
() const
Returns this point as a point with floating point accuracy.
該函數在 Qt 6.4 引入。
另請參閱 QPointF::toPoint ().
[constexpr noexcept]
QPoint
QPoint::
transposed
() const
返迴具有 x 和 y 交換坐標的點:
QPoint{1, 2}.transposed() // {2, 1}
另請參閱 x (), y (), setX (),和 setY ().
[constexpr noexcept]
int
QPoint::
x
() const
返迴此點的 X 坐標。
[constexpr noexcept]
int
QPoint::
y
() const
返迴此點的 Y 坐標。
[constexpr]
QPoint
&QPoint::
operator*=
(
double
factor
)
將此點的坐標乘以給定 factor ,並返迴此點的引用。例如:
QPoint p(-1, 4); p *= 2.5; // p becomes (-3, 10)
注意,結果被四捨五入到最近整數,由於點按整數保持。使用 QPointF 對於浮點精度。
另請參閱 operator/= ().
[constexpr]
QPoint
&QPoint::
operator*=
(
float
factor
)
將此點的坐標乘以給定 factor ,並返迴此點的引用。
注意,結果被四捨五入到最近整數,由於點按整數保持。使用 QPointF 對於浮點精度。
另請參閱 operator/= ().
[constexpr]
QPoint
&QPoint::
operator*=
(
int
factor
)
將此點的坐標乘以給定 factor ,並返迴此點的引用。
另請參閱 operator/= ().
[constexpr]
QPoint
&QPoint::
operator+=
(const
QPoint
&
point
)
添加給定 point 到此點並返迴此點的引用。例如:
QPoint p( 3, 7); QPoint q(-1, 4); p += q; // p becomes (2, 11)
另請參閱 operator-= ().
[constexpr]
QPoint
&QPoint::
operator-=
(const
QPoint
&
point
)
減去給定 point 從此點並返迴此點的引用。例如:
QPoint p( 3, 7); QPoint q(-1, 4); p -= q; // p becomes (4, 3)
另請參閱 operator+= ().
[constexpr]
QPoint
&QPoint::
operator/=
(
qreal
divisor
)
這是重載函數。
X 和 Y 兩者除以給定 divisor ,並返迴此點的引用。例如:
QPoint p(-3, 10); p /= 2.5; // p becomes (-1, 4)
注意,結果被四捨五入到最近整數,由於點按整數保持。使用 QPointF 對於浮點精度。
另請參閱 operator*= ().
[constexpr noexcept]
bool
operator!=
(const
QPoint
&
lhs
, const
QPoint
&
rhs
)
返迴
true
if
lhs
and
rhs
不相等;則返迴
false
.
[constexpr]
QPoint
operator*
(const
QPoint
&
point
,
double
factor
)
返迴副本為給定 point 乘以給定 factor .
注意,結果被四捨五入到最近整數,由於點按整數保持。使用 QPointF 對於浮點精度。
另請參閱 QPoint::operator*= ().
[constexpr]
QPoint
operator*
(const
QPoint
&
point
,
float
factor
)
返迴副本為給定 point 乘以給定 factor .
注意,結果被四捨五入到最近整數,由於點按整數保持。使用 QPointF 對於浮點精度。
另請參閱 QPoint::operator*= ().
[constexpr noexcept]
QPoint
operator*
(const
QPoint
&
point
,
int
factor
)
返迴副本為給定 point 乘以給定 factor .
另請參閱 QPoint::operator*= ().
[constexpr]
QPoint
operator*
(
double
factor
, const
QPoint
&
point
)
這是重載函數。
返迴副本為給定 point 乘以給定 factor .
注意,結果被四捨五入到最近整數,由於點按整數保持。使用 QPointF 對於浮點精度。
另請參閱 QPoint::operator*= ().
[constexpr]
QPoint
operator*
(
float
factor
, const
QPoint
&
point
)
這是重載函數。
返迴副本為給定 point 乘以給定 factor .
注意,結果被四捨五入到最近整數,由於點按整數保持。使用 QPointF 對於浮點精度。
另請參閱 QPoint::operator*= ().
[constexpr noexcept]
QPoint
operator*
(
int
factor
, const
QPoint
&
point
)
這是重載函數。
返迴副本為給定 point 乘以給定 factor .
另請參閱 QPoint::operator*= ().
[constexpr noexcept]
QPoint
operator+
(const
QPoint
&
point
)
返迴 point 未經修改。
[constexpr noexcept]
QPoint
operator+
(const
QPoint
&
p1
, const
QPoint
&
p2
)
返迴 QPoint 對象是和對於給定點 p1 and p2 ;各分量分彆相加。
另請參閱 QPoint::operator+= ().
[constexpr noexcept]
QPoint
operator-
(const
QPoint
&
p1
, const
QPoint
&
p2
)
返迴 QPoint 對象的形成是通過減去 p2 from p1 ;分彆減去各分量。
另請參閱 QPoint::operator-= ().
[constexpr noexcept]
QPoint
operator-
(const
QPoint
&
point
)
這是重載函數。
返迴 QPoint 對象的形成是通過改變 2 分量的符號為給定 point .
相當於
QPoint(0,0) - point
.
[constexpr]
QPoint
operator/
(const
QPoint
&
point
,
qreal
divisor
)
返迴 QPoint 的形成是通過除以 2 分量對於給定 point 通過給定 divisor .
注意,結果被四捨五入到最近整數,由於點按整數保持。使用 QPointF 對於浮點精度。
另請參閱 QPoint::operator/= ().
寫入給定 point 到給定 stream 並返迴流引用。
另請參閱 序列化 Qt 數據類型 .
[constexpr noexcept]
bool
operator==
(const
QPoint
&
lhs
, const
QPoint
&
rhs
)
返迴
true
if
lhs
and
rhs
相等;否則返迴
false
.
讀取點從給定 stream 進給定 point 並返迴流引用。
另請參閱 序列化 Qt 數據類型 .