vscode中用pyside6写一个生成文件md5的工具,带界面的,可以选择文件
时间: 2024-04-30 13:23:22 浏览: 23
以下是一个简单的示例代码,使用PySide6编写的带界面的文件MD5生成工具:
```python
import hashlib
import os
from PySide6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QFileDialog, QLineEdit
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('MD5 Generator')
self.setGeometry(100, 100, 400, 150)
self.file_path = ''
self.hash_value = ''
self.file_label = QLabel('Select a file:')
self.file_path_edit = QLineEdit()
self.file_path_edit.setReadOnly(True)
self.file_button = QPushButton('Browse...')
self.file_button.clicked.connect(self.browse_file)
self.hash_label = QLabel('MD5 Hash:')
self.hash_value_edit = QLineEdit()
self.hash_value_edit.setReadOnly(True)
self.generate_button = QPushButton('Generate')
self.generate_button.clicked.connect(self.generate_md5)
vbox = QVBoxLayout()
vbox.addWidget(self.file_label)
vbox.addWidget(self.file_path_edit)
vbox.addWidget(self.file_button)
vbox.addWidget(self.hash_label)
vbox.addWidget(self.hash_value_edit)
vbox.addWidget(self.generate_button)
self.setLayout(vbox)
def browse_file(self):
file_name, _ = QFileDialog.getOpenFileName(self, 'Select a file', '', 'All Files (*.*)')
if file_name:
self.file_path = file_name
self.file_path_edit.setText(file_name)
def generate_md5(self):
if self.file_path:
try:
with open(self.file_path, 'rb') as f:
md5 = hashlib.md5()
while True:
chunk = f.read(4096)
if not chunk:
break
md5.update(chunk)
self.hash_value = md5.hexdigest()
self.hash_value_edit.setText(self.hash_value)
except Exception as e:
self.hash_value_edit.setText('Error: ' + str(e))
else:
self.hash_value_edit.setText('Please select a file first.')
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
运行上述代码后,将弹出一个窗口,包含一个选择文件按钮、一个生成按钮和一个显示MD5哈希值的文本框。用户可以点击选择文件按钮来选择要处理的文件,然后点击生成按钮来生成MD5哈希值并在文本框中显示它。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)