控件旋转90度,并跟随大小缩放

news2025/1/19 20:23:11

控件旋转角度,并跟随缩放改变大小

  • 背景
  • 使用控件
  • 结果

背景

一个项目需求,需要旋转某个控件90使用,在网上找了很多资料,没有特别合适的,自己试水试了一天半,终于弄了个大概其,特此记录

使用控件

  • GraphicsView(试图),QGraphicsScene(场景),QGraphicsProxyWidget
  • 实现旋转 主要就是往GraphicsView(试图) 里面的 QGraphicsScene(场景)添加一个可以旋转的控件QGraphicsProxyWidget,然后旋转试图,实现控件旋转,通过试图的fitInView函数实现控件缩放。
  • 然后出先了个问题 ,不能跟随界面大小自动变化。
  • 解决办法,自定义一个GraphicsView类,重写resizeEvent方法

结果

在这里插入图片描述

缩放后
在这里插入图片描述


from PyQt5.QtWidgets import QApplication, QGraphicsScene, QGraphicsView, QLabel, QGraphicsProxyWidget, QVBoxLayout, \
    QWidget
from PyQt5.QtCore import Qt
from jys.pyqtwidget.pyqtchart_handel import ChartBase

class CustomGraphicsView(QGraphicsView):
    def resizeEvent(self, event):
        super().resizeEvent(event)
        self.fitInView(self.scene().sceneRect(), Qt.KeepAspectRatio)

app = QApplication([])
scene = QGraphicsScene()
view = CustomGraphicsView()
view.setScene(scene)
# 创建一个QLabel,并将其作为子部件添加到QGraphicsProxyWidget
label = ChartBase()
proxy = QGraphicsProxyWidget()
proxy.setWidget(label)

scene.addItem(proxy)

view.rotate(-90)  # 旋转视图

view.fitInView(view.scene().sceneRect(), Qt.KeepAspectRatio)

view.show()
app.exec_()

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习笔记之优化算法(七)线搜索方法(步长角度;非精确搜索;Wolfe Condition)

机器学习笔记之优化算法——线搜索方法[步长角度,非精确搜索,Wolfe Condition] 引言回顾: Armijo \text{Armijo} Armijo准则及其弊端 Glodstein \text{Glodstein} Glodstein准则及其弊端 Wolfe Condition \text{Wolfe Condition} Wolfe Condi…

CDH基于Kerberos开启身份验证实践总结

CDH基于Kerberos开启身份验证实践总结 前言简介Kerberos是什么Kerberos解决什么问题 Kerberos基本概念Kerberos认证流程Kerberos基本配置principalkeytabkrb5.confkdc.confkadm5.aclkerberos数据库 访问示例数据库访问信息 其他kerberos常用命令[Git Bash支持make命令](https:/…

在线餐饮油烟实时监测系统的设计与实现

安科瑞 华楠 摘 要:为了解决传统油烟检测方法中成本高、效率低、实时性差等问题,设计开发了一种在线油烟实时监测系统;系统由采集、通讯、服务器和用户交互四个模块组成;采集模块采集油烟数据,通过GPRS通讯技术将数据发…

13.元素尺寸与位置

原理:通过js的方式,得到元素在页面中的位置 13.1 元素尺寸与位置-尺寸 1.获取宽高: ●获取元素的自身宽高、包含元素自身设置的宽高、padding、border ● offsetWidth和offsetHeight ●获取出来的是数值,方便计算 ●注意:获取的…

基于DCT变换和huffman编码的语音压缩算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 多通道滤波 4.2 DCT变换 4.3 量化 4.3 哈夫曼编码 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ................................…

HTTP杂谈之Referer和Origin请求头再探

一 关于Referer和Origin的汇总 1) 知识是凌乱的,各位看官看个热闹即可2) 内容不断更新1、理解有盲区,需要及时纠正2、内容交叉有重复,需要适当删减3、扩展视野3) 以下内容都与Referer和Origin请求头有关联 nginx防盗链 HTTP杂谈之Referrer-Policy响应头 iframe标签referre…

go练习 day01

DTO: note_dto.go package dtoimport "king/model"type NoteAddDTO struct {ID uintTitle string json:"title" form:"title" binding:"required" message:"标题不能为空"Content string json:"conten…

青少年软件编程(Python六级)等级考试试卷(2022年9月)

青少年软件编程(Python六级)等级考试试卷(2022年9月) 第 1 题 单选题 以下关于Python二维数据的描述中,错误的是?( ) A. 表格数据属于二维数据,由整数索引的数据构成 …

[自学记录05|百人计划]Early-Z和Z-Prepass

其实这篇我是不想写的,因为网上资料真的非常非常多很多人都写过,但是我后来想了想,做笔记不就是这样吗,所以就写吧~。前置知识:深度测试Z-Buffer[计算机图形学]可见性与遮挡,Z-Buffer(前瞻预习/复习回顾)__Yhisken的博…

Vue 自定义事件绑定与解绑

绑定自定义事件 说到 Vue 自定义事件,那就需要搞清楚一个问题,为啥有这个玩意。 说到自定义事件之前,需要理解 组件基础的概念。理解了基础概念之后,我们就知道 Vue 的父子之间的通信, 一是 父组件通过 Prop 向子组件…

CK_Label_V1 CK_Label_V9 CK_Label_V11 System Developer‘s Manual

一、Register PTL You should register the PTL to our Management System first; 1、Register CK_Label_V1 Quickly press the side button three times Register ok:The led will turn off after flashing red light and the buzzer will beep once…

一个3年Android的找工作记录

作者:Petterp 这是我最近 1个月 的找工作记录,希望这些经历对你会有所帮助。 有时机会就像一阵风,如果没有握住,那下一阵风什么时候吹来,往往是个运气问题。 写在开始 先说背景: 自考本,3年经验&#xff0…

【JVM】(二)深入理解Java类加载机制与双亲委派模型

文章目录 前言一、类加载过程1.1 加载(Loading)1.2 验证(Verification)1.3 准备(Preparation)1.4 解析(Resolution)1.5 初始化(Initialization) 二、双亲委派…

在线/开源GNSS处理软件/平台介绍

当前,存在较多的GNSS开源/免费软件,可用于质量检核、RTK解算和PPP解算等,本文总结了部分常用的处理软件,其详细信息如表1和表2所示。 表1 常用GNSS预处理(格式转换、质量检核)软件: 软件名称 …

RunnerGo五种压测模式你会配置吗

我们在做性能测试时需要根据性能需求配置不同的压测模式如:阶梯模式。使用jmeter时我们需要安装插件来配置测试模式,为了方便用户使用,RunnerGo内嵌了压测模式这一选项,今天给大家介绍一下RunnerGo的几种压测模式和怎么根据性能需…

基于各种方式划分 vlan

划分VLAN的方式有:基于接口、基于MAC地址、基于IP子网、基于协议、基于策略(MAC地址、IP地址、接口)。 VLAN(虚拟局域网)可以按照以下几种方式进行划分: 端口划分方式 将交换机端口按照需要划分成不同的…

低碳 Web 实践指南

现状和问题 2023年7月6日,世界迎来有记录以来最热的一天。气候变化是如今人类面临的最大健康威胁。据世界卫生组织预测2030年至2050年期间,气候变化预计每年将造成约25万人死亡。这是人们可以真切感受到的变化,而背后的主要推手是碳排放。 …

软件定时器

Q: 什么是定时器? A: 其实在单片机的学习中,已经接触过无数次定时器了,所谓定时器,简单可以理解为闹钟,到达指定一段时间后,就会响铃。 STM32 芯片自带硬件定时器,精度较高,达到定时…

一年级数学 数一数(一到十)

今天我们来学习数一数 有一些老人 眼睛可能花了 需要我们在动物园数清楚是多少个动物 然后告诉他们 可能有的小朋友 不知道某些数字怎么读 您可以打开地址 https://fanyi.baidu.com/?aldtype16047#zh/en/ 将数字 输入到 输入框内 然后点击 下面的小话筒 系统就会读出来了 小…

Java课题笔记~ MyBatis缓存

为了减少重复查询给数据库带来的压力,MyBatis提供了缓存机制,这种机制能够缓存查询的结果,避免重复的查询。 MyBatis提供了两种缓存方式: 一种为针对于SqlSession的缓存【默认开启】 另一种为针对于全局的缓存【手动开启】 一…