运用PyQt5开发一个窗口,其中有一个按钮和一个显示区域,点击按钮选择文件夹,显示区域显示DICOM图像
时间: 2024-10-29 15:09:52 浏览: 18
在PyQt5中,我们可以创建一个简单的图形用户界面(GUI),包含一个QPushButton用于选择文件夹,以及一个QLabel或者QGraphicsView用于展示DICOM图像。下面是一个简化的步骤:
1. 首先,导入所需的库:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout, QFileDialog
from pydicom import dcmread
import os
```
2. 定义窗口类,继承自QWidget:
```python
class ImageViewer(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setWindowTitle("DICOM Image Viewer")
# 创建按钮
self.select_button = QPushButton("选择文件夹", self)
self.select_button.clicked.connect(self.show_dialog)
# 创建显示区域
self.image_label = QLabel(self)
self.image_label.setFixedWidth(400) # 设置宽度
self.image_label.setFixedHeight(300) # 设置高度
# 布局
layout = QVBoxLayout()
layout.addWidget(self.select_button)
layout.addWidget(self.image_label)
self.setLayout(layout)
def show_dialog(self):
folder_path = QFileDialog.getExistingDirectory(self, "选择文件夹", "./") # 弹出文件选择框
if folder_path:
self.display_images(folder_path)
def display_images(self, folder_path):
for file in os.listdir(folder_path):
if file.endswith(".dcm"):
try:
dicom_image = dcmread(os.path.join(folder_path, file))
pixmap = QPixmap.fromImage(dicom_image.pixel_array)
self.image_label.setPixmap(pixmap)
break # 只显示第一个图片
except Exception as e:
print(f"无法读取文件: {e}")
```
3. 最后,在主函数中创建应用并运行:
```python
if __name__ == "__main__":
app = QApplication([])
viewer = ImageViewer()
viewer.show()
app.exec_()
```
阅读全文