QT对话框怎么获取父窗口的坐标
时间: 2024-07-11 13:01:25 浏览: 83
弹出的消息框或另一个窗口在父窗口中间
在Qt中,要获取一个对话框(QDialog或QWidget)的父窗口(parent window)的坐标,你可以使用`pos()`和`parent()`函数。首先,确保你的对话框有一个已知的父窗口。如果你的窗口是从另一个窗口派生出来的,那么`parent()`函数会返回那个窗口。
以下是一个简单的示例:
```cpp
#include <QApplication>
#include <QDialog>
class MyDialog : public QDialog {
public:
explicit MyDialog(QWidget *parent = nullptr) : QDialog(parent) {
// 设置对话框的内容...
// 获取父窗口的位置
QPoint parentPos = this->parent()->pos();
qDebug() << "Parent window position: (" << parentPos.x() << ", " << parentPos.y() << ")";
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 创建并显示父窗口
QWidget parentWindow;
parentWindow.setGeometry(QRect(100, 100, 400, 300));
// 创建子对话框并将父窗口设置为它的父窗口
MyDialog dialog(&parentWindow);
dialog.setWindowTitle("My Dialog");
dialog.show();
return app.exec();
}
```
在这个例子中,当你创建并显示`MyDialog`时,它会打印出其父窗口的 `(x, y)` 坐标。
阅读全文