父窗口与子窗口

一、两者关系

        创建组件时,可以指定其停靠在某个父窗口之上。这时组件将作为子窗口被束缚于其父窗口之内,并随父窗口一起移动、隐藏、显示和关闭,否则该组件将作为独立窗口显示在屏幕上,且游离于其它窗口之外。

二、父窗口类型

        任何QWidget类及其子类的对象,都可以做为其它组件的父窗口。常见的被用做父窗口的类有三个,它们是QWidget、QMainWindow和QDialog。

(1)QWidget :
                a、是所有用户界面对象的基类
                b、提供了基本的窗⼝控件功能
                c、包含事件处理的基本功能
        所有的Qt控件都是Qwidget类的子类。可以将Qwidget看成一个容器,它可以包含如按钮、标签、文本框等控件。        

//构造函数,可以传⼊⽗窗⼝和窗⼝标志。
QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()):

(2)QDialog :是⽤于创建对话框的窗⼝⼩部件,通常⽤于获取⽤户输⼊或显示消息。

        【QWidget 的直接子类】

//构造函数,可以传⼊⽗窗⼝和窗⼝标志。
QDialog(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::Dialog)

(3)QMainWindow 是⽤于创建主窗⼝的控件,通常包含菜单栏、⼯具栏和状态栏。

        【QWidget 的直接子类】

//构造函数,可以传⼊⽗窗⼝和窗⼝标志。
QMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::Window)

三、关于析构

父窗口作为子窗口的容器,父窗口的析构将负责销毁所有子窗口。即使这些子窗口是通过new操作符动态创建的,也不必显式地通过delete操作符销毁它们。只要父窗口被销毁了,其中的所有子窗口也就随之被销毁了,完全无需担心内存泄漏问题。

四、窗口位置与大小

        无论是父窗口还是子窗口,都可以通过其move和resize方法,设置窗口的位置和大小,使用show函数显示窗口

void move(int x, int y);//移动窗口到到指定位置
void resize(int w, int h);//调整窗⼝的⼤⼩。
void show();// 显示窗⼝。

五、窗口方向

如下图所示,窗口的的原点在屏幕的右上方。X,Y为move参数x,y;W,H为resize参数w,h。

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值