VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小

这篇具有很好参考价值的文章主要介绍了VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

VS版本:VS2019
QT版本:Qt5.12.3(msvc2017_64)

为了适配不同尺寸的显示屏,软件窗口需要调整大小,窗口内的控件尺寸也要适配窗口的大小。
本例重点讲述如何设置可调整尺寸的窗口及控件,实现窗口最大化和尺寸调节。
本例使用相对简单的按键和文本框来做示例,其他控件均可通过这个方法进行设置。
PS:本方法不需要加入任何代码。


〇、姊妹篇

或许你对这篇也感兴趣:
VS+Qt设置窗口尺寸(一):固定窗口大小,无法最大化,调节尺寸

一、效果展示

控件无法自动调整大小 VS 控件自适应窗口布局👇👇👇
VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小
VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小
此时控件可以随窗口的大小自适应调节大小。

二、窗口布局

  • 使用栅格布局,注意栅格布局要作用在窗口上,而不是控件上

VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小
在Qt Creater中,单击窗口空白的地方,然后选择栅格布局,这里一定要注意,不要作用在控件上。比较一下二者的区别:

  • 作用在窗口上,控件虽然分散,但会有明显的对齐:
    VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小
  • 作用在控件上,控件会有个整体的布局(红色和绿色的框线):
    VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小

作用在控件上的布局能够快速完成控件布局及对齐,但实现自适应窗口大小,需要进行更加复杂的操作,不建议使用。

三、设置控件尺寸属性

想要控件自适应窗口布局,最为重要的一点就是设置控件的大小策略,其次是设置最大和最小尺寸。
VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小

结合控件的SizePolicy属性,来控制布局管理中的控件的尺寸自适应方式。
控件的sizePolicy说明控件在布局管理中的缩放方式。下面列举了一些最长用的值:
a. Fixed:控件不能放大或者缩小,控件的大小就是它的sizeHint。
b. Minimum:控件的sizeHint为控件的最小尺寸。控件不能小于这个sizeHint,但是可以放大。
c. Maximum:控件的sizeHint为控件的最大尺寸,控件不能放大,但是可以缩小到它的最小的允许尺寸。
d. Preferred:控件的sizeHint是它的sizeHint,但是可以放大或者缩小
e. Expanding:控件可以自行增大或者缩小
注:sizeHint(布局管理中的控件默认尺寸,如果控件不在布局管理中就为无效的值)文章来源地址https://www.toymoban.com/news/detail-421970.html

  • 将需要自适应变化的控件SizePolicy根据需求设置水平策略和垂直策略;
    水平策略设置为Expanding,那么窗口横向尺寸变化,则会有水平方向的拉伸与缩小;垂直策略设置为Expanding,那么窗口纵向尺寸变化,则会有垂直方向的拉伸与缩小;如果两个策略全部设置Expanding,那么该控件就可以自适应窗口尺寸变化。
    VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小
  • 可以根据布局需要,添加“弹簧”控件,使布局变化更加符合用户使用习惯;
    VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小
    VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小
  • 根据布局需要,对控件的最大最小尺寸进行设置,使控件在合理的尺寸内变化。VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小
    VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小
    我们把PushButton1的最大宽度设置为100,PushButton2和PushButton3的最大宽度设置为200,再来看一下效果:
    VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小
    可以看出,通过设置控件的最大最小尺寸,可以将展示重要信息的控件进行最大化的展示,对不重要的控件尺寸进行限制。
    如果在实际操作时,发现将控件SizePolicy属性设置为Expanding后,控件变得离奇的大,甚至挤压了其他重要的控件,也可以通过设置最小尺寸和最大尺寸来调整,全部设置完后,控件就会在一个合适的尺寸啦。

四、一些经验

  • 如果控件中存在GroupBox,可以将GroupBox当成正常控件来处理;如果GroupBox里面的控件也要实现自适应尺寸变化,只要按照上面的步骤,在GroupBox里面再操作一次即可。将GroupBox视为一个单独的小窗口;
  • 如果你善于观察,可能发现示例中的界面其实发生了变化。原因是因为栅格布局会自动为你划分区域,个别控件会划分到一起,这样就可能导致自适应失效。所以要灵活一点,调整一下控件布局,我为了方便演示,调整了或直接删除了控件布局o(h_h)o

五、工程源码

  • github 免费下载
  • CSDN 免积分下载

到了这里,关于VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT控件通过qss设置子控件的对齐方式、大小自适应等

    一些复杂控件,是有子控件的,每个子控件,都可以通过qss的双冒号选择器来选中,进行独特的样式定义。很多控件都有子控件,太多了,后面单独写一篇文章来介绍各个控件的子控件。这里就随便来几个例子 例如下拉列表控件,右边有个下拉按钮(QComboBox::drop-down)就是子

    2024年02月15日
    浏览(34)
  • QT自定义优雅的表单控件,简单实现设置界面布局

    FormView.h FormView.cpp 核心函数 函数 变量 功能 addEditableItem title: 输入框前面的提示文字,同时作为该控件的标识符 place_holder: 输入框中的提示文字 在表单中插入一个可填写项 addCheckableItem title: 不显示在UI中,仅作为该控件的标识符 content: 勾选框后面的内容 init_status: 勾选框的初

    2024年02月11日
    浏览(33)
  • 06-3_Qt 5.9 C++开发指南_多窗体应用程序的设计(主要的窗体类及其用途;窗体类重要特性设置;多窗口应用程序设计)

    常用的窗体基类是QWidget、QDialog 和QMainWindow,在创建 GUI应用程序时选择窗体基类就是从这 3 个类中选择。QWidget 直接继承于 QObject,是 QDialog 和 QMainWindow 的父类,其他继承于 QWidget 的窗体类还有 QSplashScreen、QMdiSubWindow和QDesktopWidget。另外还有一个类QWindow,它同时从 QObject 和Q

    2024年02月13日
    浏览(72)
  • WPF自定义控件与样式(13)-自定义窗体Window & 自适应内容大小消息框MessageBox

    一.前言 申明 :WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。 本文主要内容: 自定义Window窗体样式; 基于自定义窗体实现自定义MessageBox消息

    2024年02月05日
    浏览(31)
  • 【wxWidgets】使用布局控件进行窗口布局

    窗口布局基础 为了在各种环境中都能使窗口拥有合适的位置和大小,可能需要在OnSize事件中计算每一个窗口的大小并设置新位置,当然使用窗口布局控件可以更方便地实现 如果选择使用布局控件,可以通过自己编写或者使用工具来创建,也可以使用XRC文件布局的定义保存在

    2024年02月16日
    浏览(26)
  • Qt VS2017添加Qt窗体

    习惯用Qt Creator编写Qt程序,使用VS都不会创建QWidget了… 在VS的解决方案上中右键-添加-新建项 选择Qt,并没有找到Qt Widgets Class之类的选项,只有Form file 看到一个博客,在VS2022中可以直接创建 1 :使用VS2022创建QT界面, 不确定是否为版本问题 可先创建窗体,在手动添加窗体的

    2024年02月05日
    浏览(41)
  • 【C#学习记录】如何让界面控件实现自适应布局(Winform)

    小伙伴们大家好,我是雷工! 在软件界面设计中,客户常常要求设计的界面可以随意缩放,缩放过程中,界面中的按钮等控件也会随着窗体变大缩小自动调整显示位置和尺寸大小。在C#的Winform窗体中如何实现这个效果,下面我们一起学习下。 本样例的程序运行环境具体如下

    2023年04月21日
    浏览(35)
  • pyqt5控件自适应窗口知识点汇总(超详细讲解,持续更新中…)

    本文涉及:Windows操作系统,Python,PyQt5,Qt Designer,PyCharm 目录 一、自适应原理  二、基础布局示例 三、高级布局示例:布局嵌套布局 四、其它特殊控件自适应补充 1. tableWidget  2. 未完待续… 五、结语         自适应其实很简单,只要搞懂原理,你就能随心所欲地去布置你

    2024年02月02日
    浏览(31)
  • uni-app - 实现全屏自适应且不变形背景大图,设置一张图片占满全屏(根据手机或电脑尺寸自动拉伸背景图像),用于页面是一张平铺的大图做背景的情况,全端兼容

    网上的很多文章的教程都有一定问题,要么不会自动适应手机尺寸,要么写一堆 js 判断手机宽高,兼容性极差且代码臃肿。 在 uniapp全端兼容(h5网页 / 支付宝微信小程序 / 安卓苹果app / nvue 等全平台),经常遇到 H5 活动页、营销页、图片背景元素点缀等需求, 需要一张背景

    2024年02月17日
    浏览(113)
  • Qt布局管理(布局控件)

    实际开发中,一个界面上可能包含十几个控件,手动调整它们的位置既费时又费力。作为一款成熟的 GUI 框架,Qt 提供了很多摆放控件的辅助工具(又称布局管理器或者布局控件),它们可以完成两件事: 自动调整控件的位置,包括控件之间的间距、对齐等; 当用户调整窗口

    2024年02月04日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包