-
mapToGlobal
#include <QApplication>
#include <QWidget>
#include <QLabel>
#include <QPoint>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget parentWidget;
parentWidget.resize(400, 300);
parentWidget.setWindowTitle("Parent Widget");
QLabel childLabel("Child Label", &parentWidget);
childLabel.move(50, 50); // 将子部件移动到父部件中的局部坐标 (50, 50)
// 获取子部件相对于父部件的局部坐标
QPoint localPos(10, 10);
// 将局部坐标转换为全局坐标
QPoint globalPos = childLabel.mapToGlobal(localPos);
qDebug() << "Local Position:" << localPos;
qDebug() << "Global Position:" << globalPos;
parentWidget.show();
return app.exec();
}
mapFromGlobal(const QPoint &) const
:将给定的全局坐标点转换为局部坐标点。
#include <QApplication>
#include <QWidget>
#include <QLabel>
#include <QPoint>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget parentWidget;
parentWidget.resize(400, 300);
parentWidget.setWindowTitle("Parent Widget");
QLabel childLabel("Child Label", &parentWidget);
childLabel.move(50, 50); // 将子部件移动到父部件中的局部坐标 (50, 50)
// 获取全局坐标
QPoint globalPos(100, 100);
// 将全局坐标转换为局部坐标
QPoint localPos = childLabel.mapFromGlobal(globalPos);
qDebug() << "Global Position:" << globalPos;
qDebug() << "Local Position:" << localPos;
parentWidget.show();
return app.exec();
}
在这个示例中,我们创建了一个父部件 parentWidget
和一个子部件 childLabel
,并将子部件移动到父部件中的局部坐标 (50, 50) 处。然后,我们定义了一个全局坐标点 globalPos
(100, 100),并使用 mapFromGlobal
函数将其转换为子部件的局部坐标点 localPos
。最后,我们将全局坐标和局部坐标打印出来,以便查看转换后的结果。
通过这样的方式,您可以使用 mapFromGlobal
函数方便地将全局坐标点转换为局部坐标点,从而实现坐标的转换和定位。
- mapToParent(const QPoint &) const:将给定的局部坐标点转换为父组件的坐标系中的坐标点
#include <QApplication>
#include <QWidget>
#include <QLabel>
#include <QPoint>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget parentWidget;
parentWidget.resize(400, 300);
parentWidget.setWindowTitle("Parent Widget");
QLabel childLabel("Child Label", &parentWidget);
childLabel.move(50, 50); // 将子部件移动到父部件中的局部坐标 (50, 50)
// 获取子部件相对于父部件的局部坐标
QPoint localPos(10, 10);
// 将局部坐标转换为父组件的坐标系中的坐标
QPoint parentPos = childLabel.mapToParent(localPos);
qDebug() << "Local Position:" << localPos;
qDebug() << "Parent Position:" << parentPos;
parentWidget.show();
return app.exec();
}
在这个示例中,我们创建了一个父部件 parentWidget
和一个子部件 childLabel
,并将子部件移动到父部件中的局部坐标 (50, 50) 处。然后,我们定义了一个局部坐标点 localPos
(10, 10),并使用 mapToParent
函数将其转换为父组件坐标系中的坐标点 parentPos
。最后,我们将局部坐标和父组件坐标打印出来,以便查看转换后的结果。
通过这样的方式,您可以使用 mapToParent
函数方便地将局部坐标点转换为父组件坐标系中的坐标点,从而实现坐标的转换和定位。
- mapFromParent(const QPoint &) const
#include <QApplication>
#include <QWidget>
#include <QLabel>
#include <QPoint>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget parentWidget;
parentWidget.resize(400, 300);
parentWidget.setWindowTitle("Parent Widget");
QLabel childLabel("Child Label", &parentWidget);
childLabel.move(50, 50); // 将子部件移动到父部件中的局部坐标 (50, 50)
// 获取父组件坐标系中的坐标
QPoint parentPos(100, 100);
// 将父组件的坐标系中的坐标转换为当前组件的局部坐标
QPoint localPos = childLabel.mapFromParent(parentPos);
qDebug() << "Parent Position:" << parentPos;
qDebug() << "Local Position:" << localPos;
parentWidget.show();
return app.exec();
}
在这个示例中,我们创建了一个父部件 parentWidget
和一个子部件 childLabel
,并将子部件移动到父部件中的局部坐标 (50, 50) 处。然后,我们定义了一个父组件坐标系中的坐标点 parentPos
(100, 100),并使用 mapFromParent
函数将其转换为子部件的局部坐标点 localPos
。最后,我们将父组件坐标和局部坐标打印出来,以便查看转换后的结果。
通过这样的方式,您可以使用 mapFromParent
函数方便地将父组件的坐标系中的坐标点转换为当前组件的局部坐标点,从而实现坐标的转换和定位。
mapTo(const QWidget *, const QPoint &) const
:将给定的局部坐标点转换为指定 QWidget 的坐标系中的坐标点。mapFrom(const QWidget *, const QPoint &) const
:将给定的指定 QWidget 的坐标系中的坐标点转换为当前组件的局部坐标点。
与前面两个类似。