Qt关于new的子窗口QDialog修改坐标不能重叠在主窗口上的问题

修改坐标不能重叠在主窗口上的问题

前言

这涉及到一个继承的问题,在Qt创建的窗口默认是居中于屏幕的。同理你设置的子窗口如果继承于主窗口也会自动跟随着主窗口居中显示。于是创建子窗口只用修改下窗口固定大小即可,如果需要变化子窗口大小就设置好最大和最小尺寸,这样就可以解决不能对齐主窗口的问题

参考源码:

先创建一个GUI的类继承于QDialog!

头文件:bugtest.h

#pragma once

#include <QtWidgets/QWidget>
#include "ui_bugtest.h"
#include "xdialog.h"

class BugTest : public QWidget
{
    
    
	Q_OBJECT

public:
	BugTest(QWidget *parent = Q_NULLPTR);
public slots:
    //子窗口
	void message();
private:
	Ui::BugTestClass ui;
	XDialog *m;
};

实现文件:bugtest.cpp

#include "bugtest.h"

BugTest::BugTest(QWidget *parent)
	: QWidget(parent)
{
    
    
	ui.setupUi(this);
	connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(message()));
}
void BugTest::message()
{
    
    
	m = new XDialog(this);//这里是继承于当前主窗口
	m->setWindowTitle("My XDialog");//设置标题
	m->setFixedSize(QSize(this->width(), this->height()));//设置固定大小
	m->exec();
}

猜你喜欢

转载自blog.csdn.net/weixin_45357007/article/details/125360680