C++Qt实现设置弹出子窗口的中央窗口
时间: 2023-12-06 07:02:53 浏览: 91
在C++ Qt中,可以使用`QDialog`类实现弹出子窗口,然后使用`setGeometry`函数将其设置为其父窗口(中央窗口)的中央位置。下面是一个示例代码:
```cpp
#include <QApplication>
#include <QDialog>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDialog dialog;
dialog.setWindowTitle("My Dialog");
dialog.resize(300, 200);
// 设置为中央窗口
dialog.setGeometry(
QStyle::alignedRect(
Qt::LeftToRight,
Qt::AlignCenter,
dialog.size(),
qApp->desktop()->availableGeometry()
)
);
dialog.show();
return a.exec();
}
```
在上面的代码中,`QDialog`类表示弹出子窗口。`setWindowTitle`函数设置窗口标题,`resize`函数设置窗口大小。`setGeometry`函数将窗口设置为其父窗口(中央窗口)的中央位置。`QStyle::alignedRect`函数计算对齐的矩形位置,`Qt::AlignCenter`表示将矩形居中对齐。`qApp->desktop()->availableGeometry()`返回可用的桌面区域。最后,调用`show`函数显示窗口并启动应用程序事件循环。
阅读全文