监听窗口的大小变化事件,并在窗口大小变化时重新计算窗口的位置。
可以通过重写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();
}
这样,无论窗口是初始状态还是缩小后,都会保持在屏幕的中间位置。
Qt如何使窗口位于中间
最新推荐文章于 2024-05-31 10:28:43 发布