PyQt5里graphicsView里插入图片后双击实现全屏

最近要在PyQt5的框架下实现双击图片后图片全屏放大,这里就需要先知道我要全屏显示的是控件里的图片而不是窗口,而要调用的showfullscreen方法则是只对最顶级的窗口起作用,所以首先要做的就是将插入图片的控件(grahicsView)置为顶层:

            self.setWindowFlags(Qt.Window)#设置为顶层
            self.showFullScreen()  #全屏显示

恢复时窗口大小恢复原样:

            self.setWindowFlags(Qt.SubWindow) #将其重新设置为子窗口
            self.setGeometry(QtCore.QRect(40,82,500,600))   #将graphicsView恢复到原本大小
            self.showNormal()  #恢复原样
            self.fitInView()  #将graphicsView里的图片也恢复原样

需要注意的是这里的双击事件是在我重构的graphics View类里进行的,因为如果在主窗口QWidget类里重写鼠标双击事件的话那么作用的对象就是整个窗口,这点希望注意。

我利用自己构建的graphicsView类在窗口界面建立grahicsView控件,界面如下:

 基本代码如下:

import sys
from PyQt5 import QtCore
from PyQt5 import QtWidgets
from PyQt5 import QtGui
import cv2
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from graphicsView02 import GraphicsView

class View(QWidget):

    def __init__(self):
        super(View,self).__init__()
        self.setWindowTitle('GraphicsView')
        self.resize(800,800)
        self.pushButton = QPushButton(self)
        self.pushButton2 = QPushButton(self)
        self.pushButton.setText('打开图片')
        self.pushButton2.setText('删除图片')
        self.pushButton.setGeometry(30,50,80,30)
        self.pushButton3 = QPushButton(self)
        
        self.pushButton3.setGeometry(QtCore.QRect(110,50,80,30))
        self.pushButton3.setText('启用画图')  
       
        self.graphicsView = GraphicsView(self)   #实例化graphicsView对象
        # self.graphicsView.resize(500,600)
        self.graphicsView.setGeometry(QtCore.QRect(40,82,500,600))
        # self.graphicsView.setLayout(Layout)
        self.pushButton3.clicked.connect(self.graphicsView.addLine)
        self.Sub = None
        self.initUi()
        
    def initUi(self):
        
        # self.setCentralWidget(self.graphicsView)
        # self.scene = QGraphicsScene(self)        #初始化graphicsView对象
        # self.graphicsView.setScene(self.scene)
        self.pushButton.clicked.connect(self.on_pushButton_clicked) 
        self.pushButton2.clicked.connect(self.clear_img) 
        # self.pushButton3.clicked.connect(self.graphicsView) 
        self.graphicsView.setObjectName("graphicsView") 
        self.graphicsView.setDragMode(QGraphicsView.NoDrag)
        # self.graphicsView.setDragMode(QGraphicsView.ScrollHandDrag)   #设置其可以拖动
        self.graphicsView.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)  #隐藏滑动条
        self.graphicsView.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)  #隐藏滑动条

以上代码构建了窗口界面的基本部件,剩下便是其他功能的实现。

个人关键便是图片的插入和转化,相关内容可以看我的其他内容:

https://mp.csdn.net/mp_blog/creation/editor/118697976(graphicsVIew图片的缩放和拖拽)

https://mp.csdn.net/mp_blog/creation/editor/119143266(多个label内图片的全屏显示)

 

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋冬晚归客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值