- 在主窗口类中定义一个信号,用于在预测图像后发射图像数据。例如,如果您的主窗口类名为
MainWindow:
from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QMainWindow
class MainWindow(QMainWindow):
imagePredicted = pyqtSignal(QImage) # 自定义信号
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
# 初始化UI等
def on_predictButton_clicked(self):
# 进行图像预测
predicted_image = ...
# 发射信号,传递预测的图像
self.imagePredicted.emit(predicted_image)
- 在接收图像的界面类中,定义一个槽函数,用于接收和显示图像。例如,如果您的接收图像的界面类名为
DisplayWindow:
from PyQt5.QtWidgets import QWidget, QLabel, QVBoxLayout
class DisplayWindow(QWidget):
def __init__(self, parent=None):
super(DisplayWindow, self).__init__(parent)
self.image_label = QLabel(self)
layout = QVBoxLayout(self)
layout.addWidget(self.image_label)
def on_image_predicted(self, image: QImage):
self.image_label.setPixmap(QPixmap.fromImage(image))
- 最后,需要将
MainWindow的imagePredicted信号连接到DisplayWindow的on_image_predicted槽函数:
from PyQt5.QtWidgets import QApplication
import sys
if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MainWindow()
display_window = DisplayWindow()
main_window.imagePredicted.connect(display_window.on_image_predicted)
main_window.show()
display_window.show()
sys.exit(app.exec_())
这样,当您在MainWindow界面上进行图像预测时,预测出的图像将通过信号与槽传递给DisplayWindow界面并显示出来。