Pyqt、在推理界面预测出来的图像,在另一个界面完全一样的显示出来

99 阅读1分钟
  1. 在主窗口类中定义一个信号,用于在预测图像后发射图像数据。例如,如果您的主窗口类名为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)
  1. 在接收图像的界面类中,定义一个槽函数,用于接收和显示图像。例如,如果您的接收图像的界面类名为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))
  1. 最后,需要将MainWindowimagePredicted信号连接到DisplayWindowon_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界面并显示出来。