QT 主窗口大小改变,子窗口大小不能跟随变化

在QT开发中遇到主窗口调整大小时,子窗口尺寸无法相应变化的问题。通过重载主窗口的resizeEvent方法,并尝试设置子窗口及布局容器大小,发现布局容器的可视区域未更新。解决方法是为Widget添加合适的布局管理,无需手动设置子布局容器大小,即可实现正常拉伸效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始使用QT,在MainWindow中动态添加一个Widget的子窗口,想主窗口大小改变的时候,比如最大化。结果子窗口的大小不能改变。从网上查询资料,说主窗口需要重载

protected:
    virtual void resizeEvent(QResizeEvent *event) override;

然后我乖乖的重载了这个方法。在这个方法里动态调用子窗口的

void SelectPage::resizeEvent(QResizeEvent *event)
{
    if(_CurWidget != nullptr)
    {
        qDebug("size:%d,%d",frameSize().width(),frameSize().height());
        _CurWidget->resize(frameSize());

    }
}

根据打印信息,大小都是设置成功了,子窗口也变大了。但是子窗口的布局容器没有变大。我也手动调用了布局容器的设置大小,看起容器的拉伸效果是有了,但是布局容器的可视区域没有变大。

 

 

然后我手动改变水平布局容器的大小,结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值