血泪教训:QT子窗体不显示

子窗体构造函数中加上下面这句话:
setWindowFlags(Qt::Window);

就好使了。

以下是解释:
 

`setWindowFlags(Qt::Window);` 这句话用于设置窗口的属性。`Qt::Window` 是一个窗口标志(`Qt::WindowFlags`),它指定了窗口的类型和行为。

具体来说,`setWindowFlags(Qt::Window);` 主要有以下几个作用:

1. **使窗口独立**:`Qt::Window` 标志使得窗口成为一个顶层窗口,而不是一个嵌入在其他窗口中的小部件(widget)。这意味着该窗口将有自己的标题栏、边框,并且可以独立于其他窗口移动和调整大小。

2. **避免嵌入式显示**:如果没有设置 `Qt::Window`,窗口可能会作为父窗口的一部分显示,而不是一个独立的窗口。通过设置这个标志,可以确保窗口不会嵌入在父窗口中,而是作为一个独立的窗口显示出来。

3. **提供默认的窗口管理行为**:设置 `Qt::Window` 后,窗口将遵循系统的默认窗口管理行为,如可以被最小化、最大化、关闭等。

在你的场景中,通过 `setWindowFlags(Qt::Window);`,你确保了子窗体 (`CMy`) 作为一个独立的窗口显示,而不会嵌入在父窗口中。这就是为什么子窗体在设置这个标志后能够正常显示的原因。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值