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网页上手打的,如有问题麻烦纠正,谢谢!

相关推荐
wen__xvn2 小时前
基础数据结构第03天:顺序表(实战篇)
数据结构·c++·算法
坏柠3 小时前
C++ 进阶:深入理解虚函数、继承与多态
java·jvm·c++
虾球xz5 小时前
CppCon 2017 学习:10 Core Guidelines You Need to Start Using Now
开发语言·c++·学习
南岩亦凛汀5 小时前
在Linux下使用wxWidgets进行跨平台GUI开发(三)
c++·跨平台·gui·开源框架·工程实战教程
帅_shuai_6 小时前
UE5 游戏模板 —— Puzzle 拼图游戏
c++·游戏·ue5·虚幻引擎
字节高级特工6 小时前
每日一篇博客:理解Linux动静态库
linux·运维·服务器·c语言·c++·windows·ubuntu
oioihoii6 小时前
C++11可变参数模板从入门到精通
前端·数据库·c++
多吃蔬菜!!!6 小时前
C/C++内存管理
c语言·jvm·c++
程序员如山石6 小时前
QTabWidget动态生成标签页
c++·qt
H2122021657 小时前
P7 QT项目----会学天气预报
开发语言·qt