Qt中窗体控件按照比例缩放,自适应窗口大小进行布局

2023-11-15

    最近在做本科毕设,用到了Qt,无奈本人实在是太过于小白了,很多东西都进行了很久的探索,比如今天说到的窗体控件布局...一把辛酸泪

    首先就是创建一个GUI文件,然后进行UI设计,这里就只需要从左边进行拖拽,这个很easy啦...

    然后对其进行布局,比如右边,右下两个pushbutton我们可以对其进行水平布局,然后再将其整体与上边两个graphics view进行垂直布局!

布局->选定要进行布局的控件,然后进行右击最后一项就是布局,或者直接在左侧栏里进行layout。


比例调整->如果想对两个graphic view进行比例调控的话,就直接用到layout下的layoutstretch进行比例调整,这个比例调整会一直保持不变动。


    从网络上找到了一张能很好说明的图:(原图:https://zhidao.baidu.com/question/1386088343094179380.html)

    然后按照以上方法进行你想要的布局就好了。

    最后,最重要的是,一定一定要在窗体中进行布局!只有设置了顶层布局,控件才能自适应窗体。

给大家参考一下我的布局:




    参考了其他的文章,了解到关于控件调整还有一个很重要的参数值是SizePolicy。

    结合控件的SizePolicy属性,来控制布局管理中的控件的尺寸自适应方式。一些常用值的含义:

Fixed:控件不能放大或者缩小,控件的大小就是它的sizeHint。

Minimum:控件的sizeHint为控件的最小尺寸。控件不能小于这个sizeHint,但是可以放大。

Maximum:控件的sizeHint为控件的最大尺寸,控件不能放大,但是可以缩小到它的最小的允许尺寸。

Preferred:控件的sizeHint是它的sizeHint,但是可以放大或者缩小

Expandint:控件可以自行增大或者缩小

注:sizeHint(布局管理中的控件默认尺寸,如果控件不在布局管理中就为无效的值)


    不过我个人觉得,这个值的默认值给出的就十分合理,比如:pushbutton的水平策略是minimum,垂直策略是fixed;而line edit的水平策略则是expandint,垂直策略时fixed。


    见仁见智吧,学习路上,殊途同归!


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

Qt中窗体控件按照比例缩放,自适应窗口大小进行布局 的相关文章

  • 在 Qt 中自定义 AppMenu

    我正在为 MacOS 开发 Qt 应用程序 如何向 menuApp 添加项目 我的意思是出现在苹果图标右侧菜单栏上的条目 我想知道如何在 Qt 中实现这一点 而不是 Objective C 我正在使用 Qt 5 9 这是QWidget应用程
  • Qt如何连接rubberBandChanged信号

    我尝试将 QChartView 类中的 ruby BandChanged 信号链接到 MainWindow 类中的特定函数 主窗口 h class MainWindow public QMainWindow Q OBJECT public
  • 如何使用复选框更改 QGraphicsView 背景

    在此代码中 更改了QGraphicsView背景 现在当我检查 true 时我需要更改背景checkBox 当我设置为checkBox去检查true我需要像这段代码一样设置背景 当我设置时checkBox去检查false 我需要设置QGra
  • 如何将 QGraphicsItem QList 保存到文件然后读取它? Qt C++

    我有一个包含 QGraphicsItem 的列表 这个列表让我可以画线 我查看了文档 但没有看到如何将点保存在文件中 然后读取文件的点才能显示它们 这是我的代码 QList
  • qt5中MainWindow是用自身初始化的吗?

    我尝试学习 qt 5 但不明白一件事 Qt Creator 默认创建这两个文件 主窗口 h ifndef MAINWINDOW H define MAINWINDOW H include
  • 如何向 QFileSystemModel 添加自定义角色

    我想向 QFileSystemModel 添加自定义角色 可能是派生模型 我想使用此角色来保存复选框的选中状态 该状态显示在自定义委托中的文件名旁边 如何才能做到这一点 我已经使用过使用示例Qt Quick Controls 文件系统浏览器
  • 使用 Qt,有哪些好方法可以分解包含 GUI 逻辑的大型源文件?

    我正在使用 Qt 5 开发一个 C 项目 它有一个包含大量 UI 元素的复杂窗口 该窗口是使用 Qt Designer 设计的 并从 UI 文件加载 我发现 Qt 的典型模式是在其主类中编写窗口 UI 的所有逻辑 即他们文档中的 单一继承方
  • 如何在 Qt5 中创建/读取/写入 JSON 文件

    Qt5 有一个新的 JSON 解析器 我想使用它 问题在于 用外行术语来说 这些函数的作用以及如何用它编写代码并不太清楚 否则我可能读错了 我想知道在 Qt5 中创建 JSON 文件的代码以及 封装 的含义 示例 从文件中读取 json t
  • 设置 ItemIsMovable 标志时,子项在 QGraphicsView 中不可移动

    要调整项目中的项目QGraphicsView http qt project org doc qt 5 0 qtwidgets qgraphicsview html 我将表示顶点的子项放到要移动的项上 使用构造函数中建立的父子关系 就是下图
  • 如何在 Qt 5 中写入和读取 QResource 文件?

    很奇怪 我通过以下方式将所需的文件添加到资源中添加现有文件 文件就在那里 我运行 qmake 构建 gt 运行 qmake 以使文件可用 第一期 我无法从输出终端向文件写入任何内容 但是当我手动写入文件时 每次运行它时输出终端都会显示更改
  • QT 5.6 QWebEngine不保存cookie

    我正在创建名为 webengine 的简单 QT 应用程序 pWebView new QWebEngineView this pWebView gt load QUrl http technoz ru pWebView gt show On
  • 当 QML 对象不可见时防止 QML 属性绑定?

    我正在开发一个具有大量属性绑定的 QML 应用程序 数百个对象被跟踪并以不同的形式显示 例如 Qt3D QCanvas 当我在应用程序的单独页面上时 x y 位置和相对大小的属性绑定仍在发生 我怎样才能阻止他们 我知道我可以根据属性是否可视
  • 如何在 C++ 运行时更改 QML 对象的属性?

    我想在运行时更改 QML 对象的文本 我尝试如下 但文本仍然为空 这是后端类 class BackEnd public QObject Q OBJECT Q PROPERTY QString userFieldText READ userF
  • (如何)我可以抑制未找到包配置文件的警告吗?

    我正在尝试创建一个CMakeLists txt尝试查找的文件Qt5 如果失败 则尝试回退到Qt4安装 该脚本到目前为止有效 但如果出现以下情况我总会收到警告Qt5未安装 注意FindQt5 cmake是由提供Qt5并且仅当以下情况时才可用Q
  • Qt mouseReleaseEvent() 未触发?

    我有一个显示图片的库 我们称之为 PictureGLWidget 其中 class PictureGLWidget public QGLWidget 所以 PictureGLWidget 扩展了 QGLWidget 在PictureGlWi
  • 使用 Visual Studio 2013 构建 Qt 5.2.1 的静态版本

    几天来我一直在尝试使用 Visual Studio 2013 构建 Qt 的静态版本 我就是不明白我做错了什么 System Windows 7 64 位 Visual Studio 2013 仍安装 Visual Studio 2012
  • QWinTaskbarProgress 不会显示

    我使用的是windows7和Qt5 3 0 我在 MainWindow 的构造函数中添加了以下内容 但任务栏上没有显示任何内容 我错过了什么 QWinTaskbarProgress pTaskbarProgress new QWinTask
  • 放大 QGraphicsView 时如何保持 QPen 像素宽度相同

    我编写了一个快速而令人讨厌的程序来帮助我可视化我正在从事的项目的一个方面 尽管我从 4 1 1 开始就开始使用 Qt 但我从未真正需要使用 QGraphics 模块 当我开始使用该程序时 我正在一台运行 Windows XP Qt4 7 0
  • 连接到 QNetworkReply::error 信号

    我正在使用 Qt5 的新连接语法 QNetworkReply 有一个名为error http qt project org doc qt 5 0 qtnetwork qnetworkreply html error 2还有一个函数叫做err
  • 无法运行 Qt 应用程序:找不到版本“Qt_5”

    我运行 Ubuntu 16 04 LTS 我的问题是我无法运行可以编译的 Qt5 应用程序 这是我尝试运行它时得到的结果 home user Desktop sconfig dist Release GNU Linux SCongif us

随机推荐

  • On Distillation of Guided Diffusion Models

    本论文是解决什么问题的 无分类器引导扩散模型最近被证明在高分辨率图像生成方面非常有效 无分类器的引导扩散模型的缺点是 它们在推理时计算昂贵 原因是 因为它们需要评估两个扩散模型 一个类条件模型和一个无条件模型 数十到数百次 这篇论文提出的解
  • Linux Ubuntu安装教程

    1 创建新的虚拟机 2 选择 典型 点击 下一步 3 选择 稍后安装操作系统 点击 下一步 4 选择 Linux 版本选择 ubuntu 64位 点击 下一步 5 虚拟机名称输入 ubuntu 64位 点击 浏览 更改系统的安装位置 建议安
  • MySQL基础命令学习

    MySQL安装请看上一篇MySQL server安装记录 进入到数据库管理系统 DBMS C Windows System32 gt cd D mysql 8 0 22 winx64 bin D mysql 8 0 22 winx64 bi
  • Web自动化测试(5)-POM

    POM设计模式 目录 POM设计模式 1 简介 2 简单示例 3 UnitTest框架测试用例执行顺序 4 数据驱动 5 简单示例 1 简介 POM Page Object Model 设计模式又被称为页面对象模型 其核心思想是将web项目
  • 面向小白的最全Python可视化教程,超全的

    今天小编总结归纳了若干个常用的可视化图表 并且通过调用plotly matplotlib altair bokeh和seaborn等模块来分别绘制这些常用的可视化图表 最后无论是绘制可视化的代码 还是会指出来的结果都会通过调用streaml
  • Vue3全网最细介绍使用

    文章目录 一 Vue3介绍 二 Vue3项目创建 三 Setup 四 ref与reactive 五 setup context 六 计算属性 七 监听属性 八 Vue3生命周期 九 自定义hook函数 十 toRef 一 Vue3介绍 1
  • 思科命令配置总结

    Packet tracer 6 0 交换机命令配置 1 基本配置 Switch gt enable 用户模式 Switch configure terminal 特权模式 Switch config 全局模式 Switch config h
  • SDN-Mininet模拟多数据中心带宽实验

    一 实验目的 通过Mininet模拟搭建基于不同数据中心的网络拓扑 掌握多数据中心网络拓扑的构建 熟悉网络性能测试工具lperf 根据实验测试SDN网络的性能 通过程序生成真实网络流量 二 数据中心拓扑逻辑网络 存在线路冗余 多条链路可达
  • C语言提取(key,value)键值对

    include stdio h include stdlib h include string h 去除空格 int trim str char inBuf char outBuf int i 0 j strlen inBuf 1 int
  • nginx 之正则表达式(一)

    1 元字符 匹配除换行符以外的任意字符 w 匹配字母或数字或下划线或汉字 s 匹配任意的空白符 d 匹配数字 b 匹配单词的开始或结束 匹配字符串的开始 匹配字符串的结束 2 重复 重复零次或多次 重复一次或多次 重复零次或一次 n 重复n
  • FTP被动模式连接被拒绝(FTP passive mode connection refused)

    I m creating an ftp client and I have a problem First I create a socket where I sent USER and PASS then PASV a receive I
  • 软件工程 第一章 软件工程概述

    1 什么是软件 软件是计算机系统中与硬件相互依存的另一部分 它是包括程序 数据及其相关文档的完整集合 程序 按事先设计的功能和性能需求执行的指令序列 数据 程序能正常操纵信息的数据结构 gt 软件的核心 文档 与程序开发 维护和使用有关的图
  • Java中Stream详细使用教程

    1 java8中Stream流以及lambda的使用 stream可以将需要处理的集合元素看做流操作 是结合对象功能的一个增强 lambda表达式与stream结合使用 可以更好的对集合进行遍历 筛选 排序 聚合 分组 stream特性 不
  • Google Chrome浏览器无法翻译网页怎么办?

    最近喜欢上了一个数据分析的python脚本 可以直接出html版的数据分析报告 但是指标都是英文的 实在是看不懂 就想到了要用网页翻译这个功能 但是发现chrome浏览器不能翻译了 找了很多办法都没有解决 也是找了很久 尝试着找扩展属性包
  • mysql多表查询--实例

    1 创建student和score表 CREATE TABLE student id INT 10 NOT NULL UNIQUE PRIMARY KEY name VARCHAR 20 NOT NULL sex VARCHAR 4 bir
  • matinal:SAP ABAP 生成XML的例子

    REPORT ZXML A SET EXTENDED CHECK OFF TYPE POOLS IXML Report T DOM MANIPULATE shows how to manipulate a dom tree
  • 编译kernel-2.6.38提示错误:Compile error in arch/x86/kernel/entry_64.S

    make 1 katalog home thue linux 2 6 37 4 CHK include linux version h CHK include generated utsrelease h CALL scripts chec
  • IAR查看两断点之间执行时间

    IAR查看两断点之间执行时间 veiw gt register查看 veiw gt register查看 IAR官网原文链接
  • VBA基本语法整理

    转自 http www zjmainstay cn vba usage 1 VBA 局部变量和全局变量 1 局部变量 在Sub或者Function结构中定义的变量 通常使用Dim关键词来声明 但是可以不声明使用 不报错 2 全局变量 在Su
  • Qt中窗体控件按照比例缩放,自适应窗口大小进行布局

    最近在做本科毕设 用到了Qt 无奈本人实在是太过于小白了 很多东西都进行了很久的探索 比如今天说到的窗体控件布局 一把辛酸泪 首先就是创建一个GUI文件 然后进行UI设计 这里就只需要从左边进行拖拽 这个很easy啦 然后对其进行布局 比如