刘虾 2025-11-08 09:18 采纳率: 49.4%
浏览 6
已结题

python搭建一个flask框架工程和qt应用,通过接口调用触发qt应用

python搭建一个flask框架工程,里面有一个controller层和pyqt5的应用,工程同时启动一个flask和pyqt5界面,pyqt界面是一个图片查看器,controller有一个post接口(get_image),外部通过postman调用这个post接口,这个接口的实现类代码是读取本地路径(代码写死路径)的图片,在pyqt界面显示该图像和接口返回这个图片路径信息

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2025-11-08 10:24
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题分析

    你需要在Flask框架工程中,通过接口调用触发 PyQt5 应用,实现图片查看器的功能。

    解决方案

    1. Flask工程结构
    project/
    |---- app/
    |       |---- __init__.py
    |       |---- routes.py
    |       |---- controller.py
    |       |---- models.py
    |---- qt_app/
    |       |---- main.py
    |       |---- ui.py
    |---- requirements.txt
    
    1. Flask接口定义routes.py 中定义接口:
    from flask import Flask, request, jsonify
    from controller import Controller
    
    app = Flask(__name__)
    
    @app.route('/trigger_qt', methods=['POST'])
    def trigger_qt():
        # 接收POST请求
        data = request.get_json()
        # 调用Controller层的方法
        controller = Controller()
        controller.trigger_qt(data)
        return jsonify({'message': '成功触发QT应用'})
    
    1. Controller层controller.py 中定义Controller层的方法:
    from PyQt5.QtWidgets import QApplication
    from qt_app import main
    
    class Controller:
        def trigger_qt(self, data):
            # 根据接收到的数据启动QT应用
            app = QApplication([])
            main_window = main.MainWindow()
            main_window.show()
            app.exec_()
    
    1. PyQt5应用main.py 中定义QT应用:
    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
    from PyQt5.QtGui import QPixmap
    
    class MainWindow(QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            self.setWindowTitle('图片查看器')
            self.setGeometry(100, 100, 800, 600)
            self.label = QLabel(self)
            self.label.setPixmap(QPixmap('image.jpg'))
    
    1. 启动Flask和PyQt5__init__.py 中启动Flask和PyQt5:
    from flask import Flask
    from qt_app import main
    
    app = Flask(__name__)
    app.run(debug=True)
    
    if __name__ == '__main__':
        main_window = main.MainWindow()
        main_window.show()
    

    注意

    • 确保 qt_app 模块中的 main.py 文件正确导入了 PyQt5 模块。
    • 确保 image.jpg 文件存在于同一目录下。
    • 可以根据实际需求调整接口定义和Controller层的方法。
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月8日
  • 修改了问题 11月8日
  • 修改了问题 11月8日
  • 修改了问题 11月8日
  • 展开全部