QT 检测窗口大小变动 (c++)

实现:

.h头文件中增加如下代码:

复制代码
public:
    void resizeEvent(QResizeEvent* event) override;

.cpp文件中增加如下代码:

复制代码
void YourProject::resizeEvent(QResizeEvent* event)
{
    //调用父类的resizeEvent函数
    QMainWindow::resizeEvent(event);

    //1、获取窗口改变后的大小
    QSize newSize = event->size();
    //实现对应的处理...

    //2、获取窗口变动后组件的大小(如果组件随着窗口一同变化)
    QSize labelSize = ui->label_1->size();
    //实现对应的处理...
    //例如改变一个大小不会变化的组件:
    ui->label_2->setFixedSize(labelSize);

    //3、获取窗口变动后组件的坐标位置
    int x = ui->label_1->pos().x();
    int y = ui->label_1->pos().y();
    int w = ui->label_1->width();
    int h = ui->label_1->height();
    //实现对应的处理..
    //例如改变一个组件的位置和大小
    ui->label_2->move(x+w*0.8,y+h*0.8);    //将label_2放在了label_1的右下角
    ui->label_2->resize(w*0.2,h*0.2);        //将label_2设置为了label_1的五分之一大小
    
}

以上代码为笔者在csdn网页上手打的,如有问题麻烦纠正,谢谢!

相关推荐
fengenrong3 分钟前
20260324
c++·算法
qq_416018724 分钟前
设计模式在C++中的实现
开发语言·c++·算法
2301_7765087223 分钟前
C++与机器学习框架
开发语言·c++·算法
ALex_zry27 分钟前
现代C++设计模式实战:从AIDC项目看工业级代码架构
c++·设计模式·架构
Albertbreak28 分钟前
STL容器内部实现剖析
开发语言·c++·算法
chudonghao30 分钟前
[UE学习笔记][基于源码] 理解 Gameplay
c++·笔记·学习·ue5
2301_7957417931 分钟前
模板编译期机器学习
开发语言·c++·算法
qq_4160187241 分钟前
模板错误消息优化
开发语言·c++·算法
ALex_zry1 小时前
C++高性能日志与监控系统设计
c++·unity·wpf
Sunshine for you1 小时前
C++中的对象池模式
开发语言·c++·算法