前言:

问题,显示图像的时候,按最大窗口,图片窗口不跟着变大,还有,右边那些设置控件都没有动


解决:

步骤1:

1️⃣ 让 graphicsView 自动占满

Qt Creator 中选中 graphicsView_7 / 12 / …
属性面板 → Layout
→ 勾选:

  • horizontalSizePolicy: Expanding

  • verticalSizePolicy: Expanding

  • sizeAdjustPolicy: AdjustToContents

步骤2:

 让右侧控件区域自动收缩/拉伸

选中右侧 GroupBox(或整体布局)
属性面板 → Layout

  • horizontalSizePolicy: MinimumExpanding

  • maximumSize:宽度留空(或设大值)

  • layoutStretch:左 1,右 0(左侧优先拉伸)

步骤3:

3.1 采用栅格布局配置

这种配置方式在窗体上我们采取右键去选择。然后这里面用栅格的方式。这种方式会自动将窗体上的控件拉伸到一个全屏的状态。这样就不会最大化的窗口控件变小的情况。这种方式比较适合于图形采样的界面。因为图形控件会自动的拉伸到最大,并且会和窗口的拉伸。而其他的一些配置控件,例如bottom则会保持原来的大小,这样的话就会将图形窗口最大化,并且随着主窗口的变化而变化。

不同拉伸的效果情况。

我们看到途径窗口被设置为最大的尺寸,并且随着窗口的变化而变化而巴特呢这些小的控件因为它本身不大,所以它的变化率会变小,这样的话有利于我们最大化图形窗口显示。

【案,这种方式比较简洁一点,大部分是系统自动调整大小,然后,比例大的控件,自然大一点,当然,如果要最大化图像显示,那么,可以用下面手动的方式进行约束】

【案,注意我的按键设定选择了固定大小】

3.1 采用手动配置布局的方式

  1. 全选所有控件(Ctrl+A)

  2. 右键 → Lay out → Lay out Vertically in Splitter(或 Lay out Horizontally in Splitter

    • 自动生成 QSplitter,两边可拖动,比例自动保存。

  3. 保存 → Ctrl+S.ui 文件立即更新。

【案,当然左侧也可设置为Fixed大小,就是不变化,这样就固定在左侧】

总体规划如下:

控件属性
graphicsViewsizePolicyExpanding / Expanding
graphicsViewminimumSize可留空(或设 100×100)
右侧 GroupBoxsizePolicyMinimumExpanding / Preferred
右侧 GroupBoxmaximumWidth留空(或设 400)
整体layoutStretch1, 0(左拉伸,右固定)

配置GUI布局的应用:

在QT creator里面主要会生成下面两个文件,一个是form.ui的GUI界面布局文件,一个是由这个界面布局生成的GUI的控件的命名和位置的python的表达文件。ui_form.py

form.ui

ui_form.py (部分代码)

# -*- coding: utf-8 -*-################################################################################
## Form generated from reading UI file 'form.ui'
##
## Created by: Qt User Interface Compiler version 6.7.3
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,QMetaObject, QObject, QPoint, QRect,QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,QFont, QFontDatabase, QGradient, QIcon,QImage, QKeySequence, QLinearGradient, QPainter,QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QAbstractItemView, QAbstractScrollArea, QApplication, QCheckBox,QFormLayout, QGraphicsView, QGridLayout, QGroupBox,QHBoxLayout, QLabel, QLineEdit, QListView,QListWidget, QListWidgetItem, QPushButton, QScrollBar,QSizePolicy, QSlider, QTabWidget, QVBoxLayout,QWidget)class Ui_Widget(object):def setupUi(self, Widget):if not Widget.objectName():Widget.setObjectName(u"Widget")Widget.setWindowModality(Qt.WindowModality.ApplicationModal)Widget.resize(1460, 1004)sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(Widget.sizePolicy().hasHeightForWidth())Widget.setSizePolicy(sizePolicy)self.gridLayout_2 = QGridLayout(Widget)self.gridLayout_2.setObjectName(u"gridLayout_2")self.tabWidget = QTabWidget(Widget)self.tabWidget.setObjectName(u"tabWidget")self.tabWidget.setEnabled(True)self.tabWidget.setAutoFillBackground(False)self.tabWidget.setTabShape(QTabWidget.TabShape.Rounded)self.tabWidget.setElideMode(Qt.TextElideMode.ElideLeft)self.tabWidget.setUsesScrollButtons(True)self.tabWidget.setTabBarAutoHide(True)self.tab_7 = QWidget()self.tab_7.setObjectName(u"tab_7")sizePolicy.setHeightForWidth(self.tab_7.sizePolicy().hasHeightForWidth())self.tab_7.setSizePolicy(sizePolicy)self.formLayout_2 = QFormLayout(self.tab_7)self.formLayout_2.setObjectName(u"formLayout_2")self.groupBox_11 = QGroupBox(self.tab_7)self.groupBox_11.setObjectName(u"groupBox_11")sizePolicy1 = QSizePolicy(QSizePolicy.Policy.MinimumExpanding, QSizePolicy.Policy.MinimumExpanding)sizePolicy1.setHorizontalStretch(0)sizePolicy1.setVerticalStretch(0)sizePolicy1.setHeightForWidth(self.groupBox_11.sizePolicy().hasHeightForWidth())self.groupBox_11.setSizePolicy(sizePolicy1)self.gridLayout_4 = QGridLayout(self.groupBox_11)self.gridLayout_4.setObjectName(u"gridLayout_4")self.pushButton_22 = QPushButton(self.groupBox_11)self.pushButton_22.setObjectName(u"pushButton_22")font = QFont()font.setPointSize(12)self.pushButton_22.setFont(font)self.gridLayout_4.addWidget(self.pushButton_22, 0, 0, 1, 1)self.listWidget_2 = QListWidget(self.groupBox_11)self.listWidget_2.setObjectName(u"listWidget_2")self.gridLayout_4.addWidget(self.listWidget_2, 1, 0, 1, 3)self.pushButton_7 = QPushButton(self.groupBox_11)self.pushButton_7.setObjectName(u"pushButton_7")self.pushButton_7.setFont(font)self.gridLayout_4.addWidget(self.pushButton_7, 2, 0, 1, 1)self.pushButton_21 = QPushButton(self.groupBox_11)self.pushButton_21.setObjectName(u"pushButton_21")self.pushButton_21.setFont(font)self.gridLayout_4.addWidget(self.pushButton_21, 2, 1, 1, 2)self.pushButton_18 = QPushButton(self.groupBox_11)self.pushButton_18.setObjectName(u"pushButton_18")font1 = QFont()font1.setPointSize(16)self.pushButton_18.setFont(font1)self.gridLayout_4.addWidget(self.pushButton_18, 3, 0, 1, 1)self.pushButton_19 = QPushButton(self.groupBox_11)self.pushButton_19.setObjectName(u"pushButton_19")self.pushButton_19.setFont(font1)self.gridLayout_4.addWidget(self.pushButton_19, 3, 1, 1, 2)self.slider_expoTime = QSlider(self.groupBox_11)self.slider_expoTime.setObjectName(u"slider_expoTime")self.slider_expoTime.setValue(50)self.slider_expoTime.setOrientation(Qt.Orientation.Horizontal)self.gridLayout_4.addWidget(self.slider_expoTime, 4, 0, 1, 2)self.lab_expoTime = QLabel(self.groupBox_11)self.lab_expoTime.setObjectName(u"lab_expoTime")self.gridLayout_4.addWidget(self.lab_expoTime, 4, 2, 1, 1)self.horizontalSlider_6 = QSlider(self.groupBox_11)self.horizontalSlider_6.setObjectName(u"horizontalSlider_6")self.horizontalSlider_6.setValue(50)self.horizontalSlider_6.setOrientation(Qt.Orientation.Horizontal)self.gridLayout_4.addWidget(self.horizontalSlider_6, 5, 0, 1, 2)self.horizontalSlider_7 = QSlider(self.groupBox_11)self.horizontalSlider_7.setObjectName(u"horizontalSlider_7")self.horizontalSlider_7.setValue(50)self.horizontalSlider_7.setOrientation(Qt.Orientation.Horizontal)self.gridLayout_4.addWidget(self.horizontalSlider_7, 6, 0, 1, 2)self.horizontalSlider_8 = QSlider(self.groupBox_11)self.horizontalSlider_8.setObjectName(u"horizontalSlider_8")self.horizontalSlider_8.setValue(50)self.horizontalSlider_8.setOrientation(Qt.Orientation.Horizontal)self.gridLayout_4.addWidget(self.horizontalSlider_8, 7, 0, 1, 2)self.pushButton_20 = QPushButton(self.groupBox_11)self.pushButton_20.setObjectName(u"pushButton_20")self.pushButton_20.setFont(font1)self.gridLayout_4.addWidget(self.pushButton_20, 8, 0, 1, 3)self.pushButton_17 = QPushButton(self.groupBox_11)self.pushButton_17.setObjectName(u"pushButton_17")self.pushButton_17.setFont(font1)self.gridLayout_4.addWidget(self.pushButton_17, 9, 0, 1, 3)self.graphicsView_7 = QGraphicsView(self.groupBox_11)self.graphicsView_7.setObjectName(u"graphicsView_7")sizePolicy.setHeightForWidth(self.graphicsView_7.sizePolicy().hasHeightForWidth())self.graphicsView_7.setSizePolicy(sizePolicy)

ui_form.py 的生成方式,可以在QT Creator里面

当然,也可以,用一有的form.ui到pycharm里面去生成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/93708.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93708.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/93708.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pair之于vector、queue(vector<pair<int,int>>)

1、vector<pair<int,int>> 和 Map 的异同点map:会对插入的元素按键Key,自动排序,而且键Key不允许重复;vector:的这种用法不会自动排序,而且允许重复。2、queu…

从合规到卓越:全星QMS如何成为制造企业的质量战略引擎

从合规到卓越:全星质量管理QMS软件系统如何成为制造企业的质量战略引擎 全星质量管理QMS软件系统凭借其高度定制化、智能化、全流程覆盖等核心优势,已在汽车制造、电子、医疗、航空航天等多个高端制造领域实现领先性应用,显著提升了企业的质…

按键及消抖

方法一:延时阻塞key.c:#include "key.h" #include "delay.h"//初始化GPIO void key_init(void) {GPIO_InitTypeDef gpio_initstruct;//打开时钟__HAL_RCC_GPIOA_CLK_ENABLE(); // 使能GPIOA时钟//调用GPIO初始化函数…

什么是接口?PHP如何使用 SessionHandlerInterface 接口实现Session自定义会话数据存储

在面向对象编程中,接口(Interface)作为类与类之间的契约规范,定义了实现类必须遵守的方法签名集合,却不包含具体实现细节。这种抽象机制通过强制统一的方法命名和参数结构,实现了代码的解耦与多态性&#x…

健身房预约系统SSM+Mybatis-plus实现(二、增删改查的具体实现)

文章目录一、环境搭建二、用户管理页面(纯展示无事件操作)0.三步走1.查询表单(1)书写页面代码 :(2)对应的js部分创建对象数据模型的绑定部分:(3)引入需要的库…

在IAR Embedded Workbench for Arm中实现NXP S32K3安全调试

随着汽车电子系统变得越来越智能,对功能安全(Safety)的要求越来越高,同时信息安全(Security)也越来越被关注,安全调试(Secure Debug)机制已成为一个重要的信息安全特性。…

Vue实例中的其他属性【5】

目录1.计算属性:1.概述:2.语法特点:3.案例:案例1:案例2:案例3:4.总结:5.get函数什么时候执行?6.注意:2.监视属性:1.概述: 2.用法:1.监…

C++入门自学Day11-- String, Vector, List 复习

往期内容回顾 List类型的自实现 List类型(初识) Vector类的自实现 Vector类(注意事项) 初识Vector String类的自实现 String类的使用(续) String类(续) String类(初识&…

JavaScript性能优化实战(三):DOM操作性能优化

想象一下,你正在精心布置一个豪华蛋糕(你的网页),每次添加一颗草莓(DOM元素)都要把整个蛋糕从冰箱拿出来、放回去(重排重绘),来来回回几十次,不仅效率低下&am…

【力扣】面试经典150题总结02-双指针、滑动窗口

1.验证回文串(简单)用toLowerCase()转为小写字母,然后前后指针向中间进行比对。2.判断子序列(简单)两个指针一个指向长字符串,另一个指向短字符串。匹配就都1,不匹配就将长字符串指针1。长字符串…

MQ迁移方案

以下是完整的MQ迁移方案设计,涵盖同构/异构迁移、零丢失保障、灰度切换等关键环节,适用于Kafka、RabbitMQ、RocketMQ等主流消息队列:​一、迁移方案选型矩阵​​场景​​适用方案​​技术实现​​优缺点​​同集群版本升级​滚动重启 协议兼…

RAG 分块中表格填补简明示例:Markdown、HTML、Excel、Doc

表格填补是RAG分块中常见的需求,但不同格式的表格处理方式有所不同。本文将对 Markdown、HTML、Excel 的合并单元格进行说明,并给出 Python 示例,演示如何解析和填补。1. Markdown 表格Markdown 只能用空值表示合并单元格。(只有列…

IDEA创建一个VUE项目

由于新手学习VUE,所以使用手动初始化项目 步骤: 创建项目文件夹:在 IDEA 中点击 File > New > Project,选择 Empty Project,指定项目路径。初始化 npm:在终端中:npm init -y安装vue&#…

Chrome插件开发实战:todoList 插件

以下是一个适合小团队自用的 Chrome TodoList 插件开发示例,包含基础功能(增删改查、本地存储、统计)和简洁的交互设计。代码结构清晰,适合新手学习或快速上手。 一、项目准备 创建插件项目目录 todo-list-extension,…

【Redis数据库开启SSL加密】【小白指南】【生产环境可用】附带Docker服务器配置和python连接Redis数据库代码(加密通讯版)

【Redis数据库开启SSL加密】【填坑指南】附带服务器配置和python连接测试代码 本教程转为小白提供设置Redis安全访问,自签名证书进行安全访问你的Redis数据库,轻松实现安全访问和保护数据库不被非法入侵。 本文原创,转载请注明出处&#xff0…

笔记本电脑键盘失灵【已解决】

配置环境硬件详情笔记本电脑联想拯救者y7000 2019 PG0(已更新为win11)外接键盘colorful ckb-p100问题今天笔记本开机后,进入登录页面输入密码,突然发现笔记本自带键盘(我通常不用外接键盘)的键失灵了&#…

postgresql运维问题解决:PG集群备节点状态异常告警处理

小亦平台会持续给大家科普一些运维过程中常见的问题解决案例,运维朋友们可以在常见问题及解决方案专栏查看更多案例 问题概述: 故障: pg数据库备节点状态异常现象: 一般为集群间心跳超时导致,现象为集群有fail-count失败数告警&…

Maven 开发实践

文章目录1. 搭建私服(windows)2.上传依赖3.多个远程仓库配置4.其它1. 搭建私服(windows) 软件下载 https://help.sonatype.com/en/download.html修改端口 etc/nexus-default.properties启动程序 管理员身份进入进入bin目录下执行.\nexus.exe /run创建Ma…

设计心得——如何架构选型

一、架构的作用 可能对于很多的公司,其实架构本身的重要性并不大。大家一定明白这回事,架构在实际的开发,在大多数的场景下其实用处并没有书籍和资料中讲的那样重要,甚至是可有可无。这样讲是不有些可笑?是不是觉得挺意…

vba学习系列(12)--反射率通过率计算复杂度优化25/8/17

系列文章目录 文章目录系列文章目录前言一、反射率通过率1.整体通过率2.整体通过率3.客户工艺匹配4.机台通过率分析5.镜片通过率罩次分析分析1.1分析1.26.镜片通过率圈数分析分析1.1分析1.28.镜筒通过率圈数分析分析1.1分析1.29.镜筒通过率罩次分析分析1.2总结前言 一、反射率通…