赞
踩
- 监听窗口的大小变化事件,并在窗口大小变化时重新计算窗口的位置。
- 可以通过重写QMainWindow的resizeEvent函数来监听窗口的大小变化事件,并在事件发生时重新计算窗口的位置。
-
- cpp
- #include <QApplication>
- #include <QDesktopWidget>
- #include <QMainWindow>
- #include <QResizeEvent>
-
- class MyMainWindow : public QMainWindow
- {
- public:
- MyMainWindow(QWidget *parent = nullptr) : QMainWindow(parent)
- {
- resize(400, 300);
- }
-
- protected:
- void resizeEvent(QResizeEvent *event) override
- {
- QMainWindow::resizeEvent(event);
-
- QDesktopWidget desktop;
- int screenWidth = desktop.screen()->width();
- int screenHeight = desktop.screen()->height();
- int windowWidth = width();
- int windowHeight = height();
-
- int x = (screenWidth - windowWidth) / 2;
- int y = (screenHeight - windowHeight) / 2;
-
- move(x, y);
- }
- };
-
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
-
- MyMainWindow window;
- window.show();
-
- return app.exec();
- }
- 这样,无论窗口是初始状态还是缩小后,都会保持在屏幕的中间位置。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。