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中窗体控件按照比例缩放,自适应窗口大小进行布局 的相关文章

  • cLion + Qt5 - 退出代码 -1073741515 (0xC0000135)

    我正在尝试使用 QT5 和 cLion 运行简单的测试 但我遇到了退出代码墙 这是我的环境 克狮2017 2minGw 5 0 cMake 3 8 2Qt 5 9 0 CMakeList txt cmake minimum required
  • 在QML中动态创建ListModel

    当我需要在运行时创建任何 QML 组件时 我可以使用该指南 http qt project org doc qt 5 qtqml javascript dynamicobjectcreation html http qt project o
  • 在 QML 中截取特定项目的屏幕截图的方法是什么?

    我知道如何在 QML 中截取整个窗口的屏幕截图 https stackoverflow com questions 33165733 qquickwindowgrabwindow scene graph already in use lq
  • Qt如何连接rubberBandChanged信号

    我尝试将 QChartView 类中的 ruby BandChanged 信号链接到 MainWindow 类中的特定函数 主窗口 h class MainWindow public QMainWindow Q OBJECT public
  • qt webengine将javascript输出重定向到GUI

    我有一个可以查看页面的应用程序QWebEngineView小部件如何将我的 javascript 控制台日志重定向到我的 GUI 它当前显示在我的调试输出中 您必须子类化 QWebEnginePage 才能覆盖 javaScriptCons
  • 如何将 Qt5 和 Qt Creator 2.6.1 与 VS 2012 的编译器一起使用?

    官方下载 http qt project org downloads现在仅包含 VS 2010 的 Qt 库 5 0 0 我在 VS 2012 Express 中尝试了它们 但收到一条错误消息 错误 LNK2038 检测到 MSC VER
  • 如何更改菜单栏的字体颜色?

    如何更改 QML 菜单项的文本颜色MenuBar import QtQuick 2 4 import QtQuick Controls 1 3 import QtQuick Window 2 2 import QtQuick Dialogs
  • 如何确定 Qt 5 中的 QtWebEngine 在运行时使用的是哪个 chromium 版本?

    我在 Qt 5 中找不到任何函数来确定使用哪个 chromium 版本QtWebEngine 我不想在代码中硬编码 chromium 版本 因为我经常更新我的应用程序 并且每个版本中的 chromium 版本通常都会更改 而且 Qt 是向后
  • 如何在QWebEngineView中保存动态生成的网页?

    我正在将网页加载到QWebEngineView 用户创建不同类型的表格 报告 然后需要将这些表格作为网页保存到本地计算机 这是我尝试过的 这里我使用一个QWebEnginePage save 方法 但没有任何反应 connect saveB
  • 没有安装 qmlviewer

    我已经安装了 Qt SDK 5 0 0 beta 2 和 Qt Creator 2 6 0 它检测到该包 但给出警告 未安装 qmlviewer 我找了一下 在SDK的bin文件夹下 我能做些什么 我使用 ubuntu 12 04 并将 S
  • Qt 颜色选择器小部件?

    我有一个QDialog向用户提供一些选项供其选择的子类 这些选项之一是颜色 我见过QColorDialog https stackoverflow com a 1972272 2062384 我需要一些更简单的东西 这也是一个常规小部件 这
  • 无法在 Qt5 应用程序中加载 qca-ossl

    我决定将我的应用程序从 Qt4 迁移到 Qt5 在 Qt4 中 我将 QCA 与 QCA OSSL 一起使用 没有任何问题 但现在 OSSL 插件不想加载 我已经在 Qt5 下从 git anongit kde org qca git 编译
  • 查找 QWidget 所在的屏幕

    具有功能 QApplication desktop gt screenCount QApplication desktop gt screenGeometry 我发现我的系统上存在多少屏幕以及它们位于哪个屏幕坐标上 现在我想找出 QWidg
  • 如何实时返回鼠标坐标?

    我是 PyQt 的新手 我正在尝试使用它来创建一个实时返回鼠标位置的小部件 这是我所拥有的 import sys from PyQt5 QtWidgets import QWidget QToolTip QPushButton QAppli
  • 按索引列出的 QML 模型数据

    我有基于 QAbstractListModel 的模型 class RecordModel public QAbstractListModel QQmlContext ctxt engine rootContext ctxt gt setC
  • Qt5 链接器错误:找不到版本“Qt_5”

    1 问题 我正在尝试构建开源motorcar https github com evil0sheep motorcar在 Arch Linux 机器上从头开始项目 Motorcar 是一款 Linux VR 窗口管理器 可与 Oculus
  • QGeoCoordinate:没有这样的文件或目录

    我正在尝试使用 QtLocation 但不能 我不明白为什么 我在 ubuntu 14 04 上使用 qt5 3 2 这很奇怪 因为我将这一行添加到我的 pro 文件中 QT network CONFIG mobility MOBILITY
  • QCalendarWidget - 如何突出显示日期

    我有一个QList
  • 无法隐藏 QMenu 对象 QMenu::setVisible()?

    我已经建立了一个QMenu MainMenu在我的上面MainWindow在我的应用程序中 大家都习惯了 我有以下QMenu主菜单 文件 编辑 SuperHeavyExpertMenus 设置 帮助 我想隐藏子树SuperHeaverExp
  • 当 QML 对象不可见时防止 QML 属性绑定?

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

随机推荐

  • 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啦 然后对其进行布局 比如