在QT的UI界面,让Widget可以跟随窗体大小而改变

2023-11-05

可以使用布局(Layout)机制让Widget(QWidget)随窗口一起缩放和移动。

Qt提供以下几种布局:

  • QHBoxLayout:将QWidget按照水平方向依次排列

  • QVBoxLayout:将QWidget按照垂直方向依次排列

  • QGridLayout:将QWidget按照行列划分为多个网格,根据网格位置排列

  • QFormLayout:将QWidget按照表单样式排列

使用布局的过程如下:

  1. 在Qt Designer的左侧对象列表中选择一个QWidget。

  2. 在右侧Widgets工具箱中选择一个布局。

  3. 双击布局,将它添加到QWidget上。

  4. 您可以在属性编辑器中进一步配置布局。

  5. 单击Qt Designer左上角的"窗口"菜单按钮,选择布局配置与在mainwindow.ui的宽高比例一致的宽高比例。

  6. 在QObject的"布局"属性处设置您选择的布局。

  7. 在构造函数中将widget添加到布局中。

  8. 在resize事件中重置布局大小。

以下是一个示例(在主窗口类MainWindow的构造函数中添加):

// 创建垂直布局
QVBoxLayout *layout = new QVBoxLayout();
QWidget *widget = new QWidget(this); // 在MainWindow中创建QWidget
widget->setLayout(layout);
​
// 创建按钮并添加到布局中
QPushButton *button1 = new QPushButton("Button1");
layout->addWidget(button1, 0, Qt::AlignTop);
​
QPushButton *button2 = new QPushButton("Button2");
layout->addWidget(button2, 0, Qt::AlignTop);
​
// 设置widget为MainWindow的中心窗口
this->setCentralWidget(widget);
​
// 添加resize事件监听器,当窗口缩放时更新布局大小
connect(this, SIGNAL(resized()), this, SLOT(onResized()));

下面是重置布局尺寸的代码:

void MainWindow::onResized()
{
    QWidget *widget = this->centralWidget();
    widget->resize(this->size());
}

这样,当您调整主窗口的大小时,QWidget和其中的按钮将跟随窗口一起缩放和移动。

希望这能够帮助您实现自适应QWidget大小和位置。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在QT的UI界面,让Widget可以跟随窗体大小而改变 的相关文章

随机推荐

  • HBase条件查询(多条件查询)

    Author Pirate Leo myBlog http blog csdn net pirateleo myEmail codeevoship gmail com 转载请注明出处 谢谢 文中可能涉及到的API Hadoop HDFS h
  • css中背景颜色的代码,css背景代码是什么,css怎么控制背景颜色

    css背景代码是什么 css怎么控制背景颜色 内容导读 css背景代码主要就是设置background color 然后在后面选择我们喜欢的颜色就可以了 通常css背景代码用来控制div和特殊的文本 本文举了实例 也给出了代码 大家拿去用即
  • 【springboot系】springboot集成日志框架logback

    平常我们工作中常见的日志框架 有log4j logback log4j2 logback是由log4j的创始人设计的另外一个开源日志框架 logback相比之于log4j性能提升了不少 log4j2晚于logback 也是后起之秀 官方介绍
  • 【精·超详细】Java实现图片和Base64之间的相互转化(一看就会)

    目录 一 简介 二 maven依赖 三 工具类 四 测试 一 简介 工作中调用第三方接口的时候 比如 人脸识别 身份证识别 文字识别等等 有时是图片 有时是Base64的字符串 一般前端上传的都是图片 我们有时就需要进行相应的转换了 图片转
  • VsCode下的Remote-SSH插件的使用

    0 前言 众所周知 Vs Code是一个非常NB的编辑器 它可以通过安装不同的插件 满足几乎所有的开发需求 最近了解到微软之前推出过一个Remote SSH的插件 通过该插件可以在Vs Code上通过SSH连接Linux服务器进行终端操作或
  • Non-Rule Package常用表名

    1 GL相关 Journal Template和GL BU手动添加 GL ACCOUNT TBL GP GL GROUP GP GL GROUP DTL GP GL MAP GP GL MAP DTL 2 Pay Entity GP PYE
  • ubuntu 安装mysql,postgresql, mongodb

    安装mysql mysql教程 Ubuntu系统下MySQL开启远程连接 centos安装mysql 安装过程中需要要设置root密码 sudo apt get install python dev libpython dev libpq
  • FISCO BCOS区块链搭建笔记(No.1-节点搭建)

    说明 此文章针对的是centos版本的 其他版本可以参考官网 FISCO BCOS官网链接 点此跳转 1 搭建单群组FISCO BCOS联盟链 第一步 安装依赖 安装centos依赖 sudo yum install y openssl o
  • iOS 第三方登陆 —— 微信

    一 准备工作 1 到微信开放平台注册成开发者 获取appid 2 导入WeChatConnection framework 3 配置URL Schemes 输入appid 例如wx29ce0f21ea982cb8 二 配置AppDelega
  • 机器学习之K-means聚类算法

    目录 K means聚类算法 算法流程 优点 缺点 随机点聚类 人脸聚类 旋转物体聚类 K means聚类算法 K means聚类算法是一种无监督的学习方法 通过对样本数据进行分组来发现数据内在的结构 K means的基本思想是将n个实例分
  • 栈、队列

    一 栈 栈 author Mona public class MyStack int elements public MyStack elements new int 10 压入元素 public void push int element
  • 字节跳动Data部门员工收入证明,92年女月入14 万

    评论
  • 讲清楚 React 的重新渲染

    Web 前端开发者对渲染和重新渲染应该不陌生 在 React 中 它们究竟是什么意思 渲染 React 让组件根据当前的 props 和 state 描述它要展示的内容 重新渲染 React 让组件重新描述它要展示的内容 要将组件显示到屏幕
  • 推荐系统的挑战

    推荐系统的挑战 推荐系统简介 随着互联网2 0的发展 用户不再是数据的消费者 满足于关键词的搜索和在线浏览 而成为了数据的生产者 数据逐渐由专业机构的生产转向由用户的生产 数据量也日益剧增 信息过载油然而生 具体的表现是一是信息过滤即如何从
  • STM32单片机超声波测距(避障)

    文章目录 1 实物准备 2 原理介绍 3 代码 4 实物结果演示 1 实物准备 STM32单片机 STM32F103C8T6 超声波传感器 HC SR04 2 原理介绍 2 1 超声波传感器引脚和参数介绍 PA0 gt Trig PA1 g
  • 安卓运行linux

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 安卓直接运行arm linux gnueabi gcc编译的标准嵌入式Linux
  • kettle 抽取Excel字段,字段被系统添加.0 导致字段过长

    设置为字符串格式 并修改格式
  • Golang V1.19.1 安装配置 (windows

    目录 一 安装 1 下载地址 2 安装过程 二 环境配置 1 环境变量 2 更改代理地址 三 开发工具 1 Visual Studio Code 2 goland 一 安装 1 下载地址 https golang google cn dl
  • AnyViewer——局域网外远程控制电脑

    优势 免费 傻瓜式操作 小众 不容易涨价 缺点 手机端获取不到电脑声音 文件 手机端APP 各大应用商城即可下载 电脑端应用及使用方式 如何使用傲梅远程桌面软件 手机端和电脑端文件传输方案 阿里云盘 AnyViewer 手机端和电脑端的文件
  • 在QT的UI界面,让Widget可以跟随窗体大小而改变

    可以使用布局 Layout 机制让Widget QWidget 随窗口一起缩放和移动 Qt提供以下几种布局 QHBoxLayout 将QWidget按照水平方向依次排列 QVBoxLayout 将QWidget按照垂直方向依次排列 QGri