QPoint Class
QPoint クラスは、整数精度を用いて平面上の点を定義します。詳細...
| ヘッダー: | #include <QPoint> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 継承されたメンバーを含む、すべてのメンバーの一覧
- QPointはペイントクラスの一部です。
注:このクラスのすべての関数は再入可能である。
QPoint の比較
| カテゴリ | 比較可能な型 |
|---|---|
| 等価性 | QPoint |
| 等価性 | 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 |
(since 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() 関数は、x と y の両方が 0 に設定されている場合、true を返します。座標は、setX() およびsetY() 関数、あるいは座標への参照を返す(直接操作を可能にする)rx() およびry() 関数を使用して設定(または変更)できます。
点p に対して、以下の記述はすべて同等です:
QPointオブジェクトはベクトルとしても使用できます。加算と減算はベクトルと同様に定義されています(各成分が個別に加算されます)。また、QPointオブジェクトはint やqreal で除算または乗算を行うこともできます。
さらに、QPointクラスはmanhattanLength()関数を提供しており、ベクトルとして解釈されたQPointオブジェクトの長さを低コストで近似します。最後に、QPointオブジェクトはストリーム処理や比較を行うこともできます。
QPointF およびQPolygonも参照してください 。
メンバ関数のドキュメント
[constexpr noexcept] QPoint::QPoint()
座標 (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 25p1 とp2 の内積を返します。
[constexpr noexcept] bool QPoint::isNull() const
x座標とy座標の両方が0に設定されている場合はtrue を返し、それ以外の場合はfalse を返します。
[constexpr] int QPoint::manhattanLength() const
x() およびy() の絶対値の和を返します。これは、従来、原点からその点までのベクトルの「マンハッタン距離」として知られています。例:
QPoint oldPosition;
void 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
QPoint から CGPoint を作成します。
QPointF::fromCGPoint()も参照してください 。
[constexpr noexcept, since 6.4] QPointF QPoint::toPointF() const
この点を浮動小数点精度の点として返します。
この関数は 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 をこのポイントに追加し、このポイントへの参照を返します。例:
operator-=()も参照してください 。
[constexpr] QPoint &QPoint::operator-=(const QPoint &point)
指定されたpoint をこの座標から差し引き、この座標への参照を返します。例:
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)
lhs とrhs が等しくない場合、true を返します。それ以外の場合は、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)
指定された点、p1 およびp2 の和を表す `QPoint ` オブジェクトを返します。各成分は個別に加算されます。
QPoint::operator+=()も参照してください 。
[constexpr noexcept] QPoint operator-(const QPoint &p1, const QPoint &p2)
p2 をp1 から差し引いて形成された `QPoint ` オブジェクトを返します。各成分は個別に差し引かれます。
QPoint::operator-=()も参照してください 。
[constexpr noexcept] QPoint operator-(const QPoint &point)
指定されたpoint の両方の成分の符号を変更して形成されたQPoint オブジェクトを返します。
QPoint(0,0) - point と同等です。
これはオーバーロードされた関数です。
[constexpr] QPoint operator/(const QPoint &point, qreal divisor)
指定されたpoint の両方の成分を、指定されたdivisor で割って得られるQPoint を返します。
ポイントは整数として扱われるため、結果は最も近い整数に丸められることに注意してください。浮動小数点精度が必要な場合は、QPointF を使用してください。
QPoint::operator/=()も参照してください 。
QDataStream &operator<<(QDataStream &stream, const QPoint &point)
指定されたpoint を指定されたstream に書き込み、そのストリームへの参照を返します。
「Qtデータ型のシリアライズ」も参照してください 。
[constexpr noexcept] bool operator==(const QPoint &lhs, const QPoint &rhs)
lhs とrhs が等しい場合は `true ` を返し、そうでない場合は `false` を返します。
QDataStream &operator>>(QDataStream &stream, QPoint &point)
指定されたstream から指定されたpoint へ1つのポイントを読み込み、そのストリームへの参照を返します。
「Qtデータ型のシリアライズ」も参照してください 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.