Python 如何使用PyQT5中的按钮单击在单独的窗口中打开图像?
我将代码设置为实现一种算法,以便在从弹出对话框中选择图像时修改图像。我试图做到的是,当我单击加密按钮时,图像会在一个单独的窗口中弹出。除了窗口本身,我似乎无法在单独的窗口中弹出任何东西。任何帮助都将不胜感激。您至少有以下错误:Python 如何使用PyQT5中的按钮单击在单独的窗口中打开图像?,python,pyqt5,Python,Pyqt5,我将代码设置为实现一种算法,以便在从弹出对话框中选择图像时修改图像。我试图做到的是,当我单击加密按钮时,图像会在一个单独的窗口中弹出。除了窗口本身,我似乎无法在单独的窗口中弹出任何东西。任何帮助都将不胜感激。您至少有以下错误: 正在将创建的“hbox”添加到窗口而不是QDialog:self.setLayout(hbox),它必须是mydialog.setLayout(hbox) 不要对两个不同的对象使用相同的名称,因为它们可能会导致问题,在您的情况下,有两个QPushButton分配给变量“
- 正在将创建的“hbox”添加到窗口而不是QDialog:
,它必须是self.setLayout(hbox)
mydialog.setLayout(hbox)
- 不要对两个不同的对象使用相同的名称,因为它们可能会导致问题,在您的情况下,有两个QPushButton分配给变量“self.button2”
- 您尝试使用变量“self.label”,但从不相信它
- 使用更具描述性的名称来轻松区分其功能
- 如果要创建一个具有不同目标的窗口,最好创建一个类
谢谢。我最近刚开始在我的课堂项目中使用PyQt5,在实现这一点上遇到了很多困难。YouTube上的指南一点帮助都没有。@StephenAgbenu建议:1)通过测试和理解互联网上的示例来强化基础知识。2) 避免使用YT进行学习,因为除了必须等待观看整个视频(平均需要10分钟),你还可以在网站上用几秒钟的教程来代替它。如果你不介意的话,还有一个问题。在完成load image函数内的操作后,Gui最终崩溃,然后出现python问题报告弹出窗口,我如何使它只关闭第二个对话框而不是第二个和主对话框窗口?
from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QFileDialog, QPushButton, QLineEdit,QVBoxLayout, QHBoxLayout
from PyQt5.QtCore import *
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QDialog, QVBoxLayout
import Updated_encrypt
import sys
class Window(QWidget):
def __init__(self):
super().__init__()
self.title = 'Encrypt/Decrypt'
self.top = 200
self.left = 500
self.width = 400
self.height = 300
self.InitWindow()
def InitWindow(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
vbox = QVBoxLayout()
self.button1 = QPushButton('Encrypt')
self.button1.clicked.connect(self.openSecondDialog)
self.button2 = QPushButton('Decrypt')
vbox.addWidget(self.button1)
vbox.addWidget(self.button2)
self.setLayout(vbox)
self.show()
def openSecondDialog(self):
hbox = QVBoxLayout()
mydialog = QDialog(self)
mydialog.show()
self.button2 = QPushButton('Check Image')
self.button2.clicked.connect(self.getImage)
hbox.addWidget(self.button2)
self.setLayout(hbox)
self.show()
def getImage(self):
hbox = QHBoxLayout()
file_Name = QFileDialog.getOpenFileName(self,
'OpenFile',
'',
'')
image_path = file_Name[0]
updatedImage = Updated_encrypt.decrypt(image_path, 123)
pixmap = QPixmap(updatedImage)
self.label.setPixmap(QPixmap(pixmap))
self.resize(pixmap.width(), pixmap.height())
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())