Qt应用程序窗体无法最大化的解决方法

在Qt开发中我遇到一个很奇怪的问题:主窗体始终无法实现最大化——之前一直用的方法是setWindowState(Qt::WindowMaximized)。

定位过程如下:排除了Layout被重用,以及控件的缩放被限制的原因。通过删除法定位发现:在主窗体加入某一子窗体就会出现该问题。然后又发现在该子窗体的某一区域只要添加除QWidget外的任何控件,都会出现该问题。问题解决陷入僵局,不知该如何解决。后查阅Qt助手,发现还有showMaximized()这个函数可用。替换setWindowState,还是不行。后交换了showMaximized()和setWindowFlags(Qt::FramelessWindowHint)的调用顺序,该问题得以解决。其正确的调用顺序如下:

图1

将showMaximized()替换成setWindowState(Qt::WindowMaximized),问题会再次出现。鉴于此,在Qt开发中要实现窗体的最大化时,推荐使用showMaximized()。

另外,若想使用Qt窗体原生的Frame,则应按如图2所示方式编写代码。若不加最下边一句,则同样会出现窗体无法最大化的问题,如图3所示。

图2

 

 图3

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ccDouble2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值