Python界面设计【QT-creator基础编程 - 01】如何让不同分辨率图像自动匹配graphicsView的窗口大小

问题:

图像的分辨率比较大,是2k的。然后在这个控件下面view下面是显示不全。当然它是自动的生成了这个图上的滑动的条。它其实有滑动条,但是如果查看图像的话,看起来还是还是很方便,那么最好有一种方式就是让这个graphicsview的窗口能够自动匹配输入输出的图像的分辨率大小,让它完整显示。

环境:

使用的环境是qtcreator + python的环境。

图像处理:opencv


解决办法:

1 构建场景

python 复制代码
# 放在 Widget.__init__ 末尾即可
self.ui.graphicsView_7.setScene(QGraphicsScene())

2 更新图像算法(opencv)update_camera_frame

python 复制代码
    def update_camera_frame(self):
        if not (self.camera_manager.camera and hasattr(self.camera_manager.camera, 'read_frame')):
            return

        frame = self.camera_manager.camera.read_frame()
        if frame is None:
            return

        # BGR → RGB
        frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        h, w, ch = frame_rgb.shape
        q_img = QImage(frame_rgb.data, w, h, ch * w, QImage.Format_RGB888)
        pix = QPixmap.fromImage(q_img)

        # 场景已存在,直接清空 + 添加 + 自适应
        scene = self.ui.graphicsView_7.scene()
        scene.clear()
        scene.addPixmap(pix)
        self.ui.graphicsView_7.fitInView(scene.itemsBoundingRect(),
                                         Qt.KeepAspectRatio)

3 增加窗口大小变化自动缩放

python 复制代码
def resizeEvent(self, event):
    super().resizeEvent(event)
    if self.ui.graphicsView_7.scene():
        self.ui.graphicsView_7.fitInView(
            self.ui.graphicsView_7.scene().itemsBoundingRect(),
            Qt.KeepAspectRatio
        )

结果:全尺寸的显示

相关推荐
code2cat几秒前
Java进阶篇之AtomicMarkableReference:引用还在,标记已经改变
java·开发语言·cas·并发编程·逻辑删除
CappuccinoRose13 分钟前
FormData数据处理
开发语言·前端·javascript·表单数据
Zguigo29 分钟前
【CUDA8】第一个CUDA C++ Kernel --vector add
java·开发语言·c++
GitFun35 分钟前
给策略加了条-8%止损线,11年只触发1次
python·股票·量化交易
-Marks-1 小时前
【C++编程】STL容器(二)--- vector底层模拟实现(常用接口实现 | 扩容机制 | 深浅拷贝 | 迭代器失效)
开发语言·c++·vector·内存管理·迭代器失效·vector底层模拟实现
马六六i1 小时前
市面上正规的IP驱动产业新场景新工具有哪些
大数据·网络·python·tcp/ip
Shadow(⊙o⊙)1 小时前
C++11并发支持库
开发语言·c++
一技安身1 小时前
【java】JDK8 + JDK17 绿色解压共存方案-全程不修改任何系统环境变量
java·开发语言
hudd6682 小时前
JavaEE 初阶 - 多线程(初阶)
java·开发语言·java-ee
I Am a robert girl2 小时前
稀有事件估计的迭代去对齐:从源码视角拆解重要性采样新范式
开发语言·python·机器学习·重要性采样·蒙特卡洛方法·稀有事件估计