import cv2import numpy as npfrom PyQt5QtCore import Qtfrom PyQt5QtGui import QPixmapfrom PyQt5QtWidgets import QApplication QMainWindow QFileDialog QLabel QSlider QVBoxLayout QHBoxLayout QPushButt
这个问题可能是因为在选择图像时,文件对话框被销毁导致的。可以尝试将文件对话框声明为实例变量,而不是在方法中创建它。修改代码如下:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('Canny边缘检测')
self.setGeometry(100, 100, 800, 600)
self.image_label = QLabel()
self.image_label.setAlignment(Qt.AlignCenter)
# ...
self.file_dialog = QFileDialog(self) # 将文件对话框声明为实例变量
def select_images(self):
self.file_dialog.setFileMode(QFileDialog.ExistingFiles)
self.file_dialog.setNameFilter('Images (*.png *.jpg *.bmp)')
if self.file_dialog.exec_(): # 使用实例变量调用exec_()方法
file_names = self.file_dialog.selectedFiles()
# ...
这样就可以在选择图像后保留文件对话框,避免自动消失的问题
原文地址: https://www.cveoy.top/t/topic/ckyM 著作权归作者所有。请勿转载和采集!