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
        )

结果:全尺寸的显示

相关推荐
兵慌码乱10 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵11 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio15 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户03321266636716 小时前
使用 Python 从零创建 Word 文档
python
Csvn21 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽1 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户556918817531 天前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱2 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei2 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python