python 菜单按钮打开新窗口_PyQt5为每个按钮cli打开新图像窗口

本文介绍如何使用PyQt5在菜单中设置按钮,点击按钮时以新窗口展示处理后的numpy图像数组。通过创建`NewImage`类转换numpy数组到QPixmap,并在点击事件中实例化该类来实现新窗口的打开。
摘要由CSDN通过智能技术生成

我一直在玩PyQt5,结果被困在这里了。在某个菜单中,对于每个按钮的单击(以及给定的numpy图像数组),我尝试打开一个新的图像窗口(同时将numpy数组转换为图像)。在

因此,首先,我对一个图像进行了处理(使用this answer将numpy图像数组转换为QPixmap):

NewNumpyImageWindow.py课程:import cv2

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QLabel

from PyQt5.QtGui import QPixmap, QImage

class NewImage(QWidget):

def __init__(self, npImage):

super().__init__()

label = QLabel(self)

pixmap = self.ConvertNumpyToQPixmap(npImage)

label.setPixmap(pixmap)

self.resize(pixmap.width(), pixmap.height())

self.show()

@staticmethod

def ConvertNumpyToQPixmap(np_img):

height, width, channel = np_img.shape

bytesPerLine = 3 * width

return QPixmap(QImage(np_img.data, width, height, bytesPerLine, QImage.Format_RGB888).rgbSwapped())

if __name__ == '__main__':

app = QApplication(sys.argv)

currentNumpyImage = cv2.imread("capture.png")

window = NewImage(currentNumpyImage)

sys.exit(app.exec_())

而且效果很好。图像显示为一个新窗口。

现在,我希望图像显示为一个新窗口,每次我按下我的主菜单按钮。在

所以我试着为每次按下(在按钮'New'上)创建上面类的一个实例,但是它不起作用。这个窗口看起来像是一个新窗口,在代码完成后立即关闭。在

新的NumpyImageWindowMenu.py课程:

^{pr2}$

任何帮助都将不胜感激。谢谢。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值