【Qt+Python项目构建】- 02 Qt creator 14.0 + PySide6 如何让图像控件的尺寸变化和窗口一致

前言:【这是个AI不会回答的问题】

Qt Creator 新的版本又发出了,Pyside6 有很多新功能。但是,一些传统的方法要被淘汰了。

一个经典的例子是:

我有个一个图像要显示在Form里面的图像控件上,OK, 我现在拖拽编程,把图像控件搞到Form( Qt 叫Widget)后,然后我抓一个 graphicView的图像控件。

调好了尺寸,运行。

然后,

我准备双击,最大化一下Form的窗口大小,然后,

就发现,放大的只有Widget , graphicView 仍然是那个大小没变动啊。

【Python + QT 构建GUI的方式和 C# 的方式有很大不同,这种图像匹配控件的情况,在C# 应该是设定一下,图像控件的某个属性就可以了。QT 里面,确实是要复杂一点,需要考虑layout的整个定义和设计】


任务:拖拽编程要求

 在一个父 Widget中,加一个tabWidget,然后,在tabWidget里面加一个graphicsView

目标,让要让 tabWidget 的大小随着其父 Widget 的变化而变化,同时tabWidget里面的graphicsView也一起变化:

比如这样:


环境:

Qt Creator 14.0.1

Based on Qt 6.7.2 (MSVC 2019, x86_64)

Built on Aug 6 2024 00:17:40

 


老版本的方法:

  • 打开Qt Designer:启动Qt Designer并打开你的.ui文件。

  • 添加QTabWidget:在工具箱中找到QTabWidget控件,将其拖放到你的主窗口(QWidget)中。

  • 设置布局:选中QTabWidget,然后在属性编辑器中找到“布局”属性。你可以选择“LAYOUT IN A BOX”或者直接选择一个布局,比如QVBoxLayout

  • 添加标签页:双击QTabWidget来添加标签页,或者在属性编辑器中设置标签页的数量和标题。

  • 调整大小策略:为了确保QTabWidget能够随着窗口大小的变化而变化,你可以在属性编辑器中找到QTabWidget的“大小策略”属性,并设置为“Expanding”,这样它就会填充整个可用空间。

  • 保存并使用.ui文件:保存你的.ui文件,然后在你的PySide6应用程序中加载它。

import sys
from PySide6.QtWidgets import QApplication, QWidget, QTabWidget, QVBoxLayoutclass MyWidget(QWidget):def __init__(self):super().__init__()# 创建一个QTabWidgetself.tabWidget = QTabWidget()self.tab1 = QWidget()self.tab2 = QWidget()# 为tabWidget添加标签页self.tabWidget.addTab(self.tab1, "Tab 1")self.tabWidget.addTab(self.tab2, "Tab 2")# 创建布局管理器layout = QVBoxLayout()layout.addWidget(self.tabWidget)# 设置布局管理器到窗口self.setLayout(layout)# 调整窗口大小self.resize(400, 300)# 双击窗口时调整大小self.installEventFilter(self)def eventFilter(self, source, event):if source is self and event.type() == QEvent.MouseButtonDblClick:self.resize(800, 600)return Truereturn super().eventFilter(source, event)if __name__ == "__main__":app = QApplication(sys.argv)widget = MyWidget()widget.show()sys.exit(app.exec())

 【案,这个完全不适合我的新版本。在新版本里面,QVBoxLayout,根本不存在,而且,属性框里,“LAYOUT IN A BOX”也没有。所以,需要创建新的修改方法】


 新版本的方法:

 【案,QT creator 新版本的布局,已经不放在控件的属性框里面了,而是需要【右键】打开】

 1 案例里面控件对象的列表:

2 布局的设定

2.1 拖拽一个主Wiidget并布局如下:

他的属性如下图:

我们需要关注红框里的设定,这个会影响我们要做的任务:

2.2 拖拽一个gridlayout(对齐用,也可以不用)

放到Widget里面,并拉满

 2.3 拖拽一个tabWidget(选一个图像控件的容器,我选了这个Tab控件)

放到gridlayout里面,然后,拉满。

拉满这里有一个非常关键的一步:

选择,在窗体布局里面布局,我这里灰色,是因为我已经这么设定了

这样,布局和空间就绑定了,然后这个geometry应该是不能选的,这时候就是拉满了,否则,你还是没有设定好。

 

 2.4 在tab(某个tab 页)里面拖拽一个加入一个graphicsView

2.4.1 刚拉入的时候,还没有绑定layout

上例中,tab3就没有绑定layout,也就是没有做布局的处理。

2.4.2 本例,在tab3右键,选择【在窗体中布局】

这时候,所有的选项都是灰色的,那是因为Tab页上面,啥也没有,根本不需要布局

现在,我们把图像控件graphicView从工具箱里面拉动过来:再右键,

这时候,就可以设定【在窗体布局中布局了】

我们选择这个选项,点击,后会自动布局了,不过还需要调整一下。

这样,这个就拉满了。

后面运行,双击窗体后,放大最大后,Tab的里面图像的窗体也会自动匹配了。

一定要拉满:他才会跟随

同样,要选择在窗体布局里面布局

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

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

相关文章

HarmonyOs 查看官方文档使用弹窗

1. 学会查看官方文档 HarmonyOS跟上网上的视频学习一段时间后,基本也就入门了,但是有一些操作网上没有找到合适教学的视频,这时,大家就需要养成参考官方文档的习惯了,因为官方的开发文档是我们学习深度任何一门语言或…

AI资深导师指导-ChatGPT深度科研工作应用、论文撰写、数据分析及机器学习与AI绘图

2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在…

嵌入式硬件设计中EDA布局与布线实现

大家好,今天主要给大家分享一下,如何使用立创EDA进行布局和布线,具体实现过程如下: 第一:PCB概念介绍 在介绍PCB的时候,先来说明一下,电子管的发明史。 贝尔在1876年发明了电话,爱迪生1879年发明了白炽灯、特斯拉于1888年发明了电动机,所有这些,都为电子学的诞生准…

如何修改银河麒麟高级服务器操作系统修改网卡名称(如从ens33到eth0)

如何修改银河麒麟高级服务器操作系统修改网卡名称(如从ens33到eth0) 💖The Begin💖点点关注,收藏不迷路💖 查找并修改配置文件: 使用ifconfig查看网卡名称(如enp1s0)。找…

计算机网络实验一:组建对等网络

实验一 组建对等网络 实验要求: 1. 组建对等网络,会在命令行使用ipconfig,两网络能够相互ping通,尝试netstat 命令 2. 建立局域网共享文件夹 3. 安装packet tracer,模拟组建对等网并测试对等网 1、组建对等网络 连…

HAL+M4学习记录_4

一、按键 记录学习使用HAL库读取板载按键输入键值 板载三颗按键,引脚配置如下 其中K_UP按键按下为高电平,那么PA0引脚要配置为下拉模式;K0和K1按下为低电平,那么PE4和PE3引脚要配置为上拉模式。 二、通过按键控制LED 这里实现的…

保姆教程篇:手把手教你从零开始本地部署Dify工作流

本教程将指导您在个人电脑上安装和配置 Dify。 为什么需要Dify 在开始具体的教程之前,先搞清楚为什么要选择 Dify。 6 月份,阿里巴巴全球数学竞赛中,首次接受AI参赛。结果令人大跌眼镜:AI选手们的表现完全无法与人类选手相提并…

STM32外设详解——ADC

来源:铁头山羊 基本概念 ①ADC是模数转换器的统称,stm32f103c8t6内部集成了2个12位主次逼近型ADC,外设名称为ADC1、ADC2。 ② 采样深度为12位意味着ADC可以将0~3.3V的模拟电压等比转换为0~4095的数字值(分割为2的12次方份&…

SOMEIP_ETS_178: Subscribe_using_wrong_SOMEIP_MessageID

测试目的: 验证DUT能够拒绝一个SOME/IP头部使用错误消息ID进行服务发现的SubscribeEventgroup消息,并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议,当接收到一个使用错误消息ID的服务发现SubscribeEve…

YOLO--前置基础词-学习总结(上)

RFBNet是什么意思 RFBNet 是一种用于目标检测的深度学习网络,它的名字来源于 "Receptive Field Block Network"(感受野块网络)。简单来说,RFBNet 是一种可以让计算机更好地“看”图像中不同大小的物体的方法。 在图像处…

Python FFmpeg 安装使用教程

文章目录 什么是 FFmpeg?主要功能包括: Windows 下载安装下载解压安装配置环境变量 使用案例使用 ffmpeg-python 库转换视频格式视频剪辑添加字幕 使用 subprocess.run 执行视频格式转换 其它问题ffmpeg 不是内部或外部命令,也不是可运行的程序 个人简介…

虹软人脸 报错 Can‘t find dependent libraries

系列文章目录 文章目录 系列文章目录一、虹软人脸 报错 Can‘t find dependent libraries 一、虹软人脸 报错 Can‘t find dependent libraries 在项目中使用了 虹软 人脸识别SDK,环境一直出错。 错误: Can’t find dependent libraries 从错误信息来…

Arduino UNO R3自学笔记21 之 Arduino基础篇学习总结

注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。 前言:目前将Arduino的大多数基础内容学习了,做个总结。 1.编程语言 学习单片机,在面向单片机编程时,语言是最基础的&#…

Web前端入门

文章目录 前言1 Web前端概述1.1 网站和网页1.2 HTML语言1.3 网页的形成1.4 常用浏览器1.5 浏览器内核(渲染引擎)1.6 web标准 2 HTML标签2.1 开发工具2.2 HTML语法规则2.3 标签的关系2.4 HTML注释标签2.5 结构标签 3 常用标签3.1 标题标签3.2 段落标签3.3 换行标签3.…

HAL库常用的函数:

目录 HAL库: 1.GPIO常用函数: 1.HAL_GPIO_ReadPin( ) 2.HAL_GPIO_WritePin( ) 3.HAL_GPIO_TogglePin( ) 4.HAL_GPIO_EXTI_IRQHandler( ) 5.HAL_GPIO_EXTI_Callback( ) 2.UART常用函数: 1.HAL_U…

详细分析Spring Framework中 @ConditionalOnProperty的基本知识(附Demo)

目录 前言1. 基本知识2. Demo 前言 基本的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新) 从实战中学习启发 1. 基本知识 Conditiona…

2025考研今天开始预报名!攻略请查收

2025年全国硕士研究生招生考试 今天起开始预报名 有什么流程?需要准备哪些信息? 这份考研报名攻略速查收 ↓↓↓ 全国硕士研究生招生考试报名包括网上报名和网上确认两个阶段: 网上预报名时间为10月9日至10月12日(每日9&#xff1…

虚幻引擎GAS入门学习笔记(二)

虚幻引擎GAS入门(二) 学习位置UE5.3 GAS入门教程重置版 小明 MVC框架与技能初始化 让一开始创建的蓝图的基础GameplayAbility蓝图继承我们写好的BaseGameplayAbility类 创建一个库函数,写一些常用的函数在里面第一个得到玩家与玩家控制器 获取角色面对目标的方向…

【优选算法】(第三十二篇)

目录 ⼆进制求和(easy) 题目解析 讲解算法原理 编写代码 字符串相乘(medium) 题目解析 讲解算法原理 编写代码 ⼆进制求和(easy) 题目解析 1.题目链接:. - 力扣(LeetCode&a…

双十一好物必买榜:数码好物推荐!

​双十一该入手一些好物来准备度过下一年,选择几款数码好物和工作都用得到的实用好物陪伴冬天是能够让自己更积极的迎接生活,能够让自己更开心满足的方式。适当的购物也是能够缓解工作压力,心情不好的方法,但依然要选择买回家不会…