openslide封装成自己的app(PyQt)

来源

GitHub - openslide/openslide-python: Python bindings to OpenSlide

OpenSlide Python是OpenSlide库的Python接口。

OpenSlide是一个C库,提供了一个简单的阅读界面 全幻灯片图像,也称为虚拟幻灯片,具有高分辨率 数字病理学中使用的图像。这些图像可以占用数十千兆字节 未压缩时,因此无法使用标准工具轻松读取或 库,专为可以舒适地 未压缩到RAM中。整张幻灯片图像通常是多分辨率的; OpenSlide允许以分辨率读取少量图像数据 最接近所需的缩放级别。

在安装之后 我们可以发现给出的demo最终运行都需要在浏览器访问服务器并最终显示,又因为工作需要将他放在一个窗口内,于是进行验证性测试。把deepzoom_multiserver.py封装。test.py 中的 Flask 应用程序嵌入到 PyQt5 窗口中显示。

我因为测试需要将deepzoom_multiserver.py复制为test.py。同时,在同级目录下创建app.py,具体内容如下:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl
from threading import Thread
from test import create_app
"""
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget:
从PyQt5 库中导入所需的类,包括用于创建应用程序、主窗口、布局和部件的类。
from PyQt5.QtWebEngineWidgets import QWebEngineView
PyQt5 库中导入用于显示 Web 内容的部件类。
from PyQt5.QtCore import QUrl:
从 PyQt5 库中导入用于处理 URL 的类。
from threading import Thread:
从 Python 标准库中的 threading 模块导入 Thread 类,用于在单独的线程中运行 Flask 应用程序。
from test import create_app:
从 test.py 文件中导入 create_app 函数,该函数用于创建 Flask 应用程序。
"""
class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Flask Web App")
        self.setGeometry(100, 100, 800, 600)

        layout = QVBoxLayout()

        # 显示web内容
        self.web_view = QWebEngineView()
        layout.addWidget(self.web_view)

        central_widget = QWidget()
        central_widget.setLayout(layout)
        self.setCentralWidget(central_widget)

        flask_thread = Thread(target=self.start_flask)
        flask_thread.start()

    def start_flask(self):
        app = create_app()
        app.run(host='127.0.0.1', port=5000)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.web_view.load(QUrl("http://127.0.0.1:5000"))  # 加载 Flask 应用程序的页面
    window.show()
    sys.exit(app.exec_())

最终结果如下所示:

测试发现还是有一些小的问题,比如无法回退到上一文件夹等等,但是都是一些小问题了,现在的目的还是验证性实验。

参考资料:GitHub - openslide/openslide-python: Python bindings to OpenSlide

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值