m0_61770108 2024-01-13 21:28 采纳率: 29.4%
浏览 32
已结题

页面随stackedWidget变换而改变大小

img


QStackedWidget栅格化布局,加载其他ui界面,其他ui界面不随QStackedWidget的大小改变而改变,这个该怎么解决呀,谢谢

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-01-13 21:30
    关注

    引自免费微信小程序:皆我百晓生

    问题描述:希望随着QStackedWidget的变化,其他UI界面也能随之改变大小。

    解决方案:

    1. 使用布局管理器:将其他UI界面添加到QStackedWidget中时,使用布局管理器来设置UI界面的布局。这样,当QStackedWidget大小改变时,布局管理器会自动更新其他UI界面的大小。

    示例代码如下:

    // 创建布局管理器
    QVBoxLayout* layout = new QVBoxLayout();
    
    // 将需要添加的UI界面添加到布局管理器中
    QWidget* page1 = new QWidget();
    layout->addWidget(page1);
    
    QWidget* page2 = new QWidget();
    layout->addWidget(page2);
    
    // 将布局管理器设置给QStackedWidget
    QStackedWidget* stackedWidget = new QStackedWidget();
    stackedWidget->setLayout(layout);
    
    1. 监听QStackedWidget大小改变事件:可以通过重写QStackedWidget的resizeEvent函数,在函数中手动调整其他UI界面的大小。

    示例代码如下:

    class MyStackedWidget : public QStackedWidget
    {
    protected:
        void resizeEvent(QResizeEvent* event) override
        {
            // 调用父类的resizeEvent函数
            QStackedWidget::resizeEvent(event);
    
            // 调整其他UI界面的大小
            QWidget* currentPage = currentWidget();
            // 根据需要调整currentPage的大小
        }
    };
    
    // 创建自定义的QStackedWidget
    MyStackedWidget* stackedWidget = new MyStackedWidget();
    
    1. 设置其他UI界面为自适应大小:可以使用布局管理器或者设置minimumSize和maximumSize属性来让其他UI界面自适应大小。

    示例代码如下:

    // 使用布局管理器
    QVBoxLayout* layout = new QVBoxLayout();
    
    // 设置其他UI界面为自适应大小
    QWidget* page1 = new QWidget();
    page1->setLayout(layout);
    
    // 或者使用minimumSize和maximumSize属性
    QWidget* page2 = new QWidget();
    page2->setMinimumSize(QSize(0, 0));  // 设置最小大小为0
    page2->setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));  // 设置最大大小为无限大
    

    希望以上解决方案能帮助到您!如有需要,请参考示例代码进行实现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 赞助了问题酬金15元 1月13日
  • 创建了问题 1月13日

悬赏问题

  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳