请对代码添加i注释
时间: 2024-02-18 16:05:39 浏览: 121
好的,以下是带注释的代码:
```python
import re
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QAction, QFileDialog
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个文本编辑框
self.text_edit = QTextEdit()
# 将文本编辑框设置为窗口的中央部件
self.setCentralWidget(self.text_edit)
# 初始化界面
self.init_ui()
def init_ui(self):
# 创建“Open”菜单项,并设置快捷键
open_file_action = QAction('Open', self)
open_file_action.setShortcut('Ctrl+O')
# 连接“Open”菜单项的触发信号槽
open_file_action.triggered.connect(self.open_file)
# 创建“Save”菜单项,并设置快捷键
save_file_action = QAction('Save', self)
save_file_action.setShortcut('Ctrl+S')
# 连接“Save”菜单项的触发信号槽
save_file_action.triggered.connect(self.save_file)
# 创建菜单栏
menu_bar = self.menuBar()
# 创建“File”菜单
file_menu = menu_bar.addMenu('File')
# 添加“Open”菜单项到“File”菜单
file_menu.addAction(open_file_action)
# 添加“Save”菜单项到“File”菜单
file_menu.addAction(save_file_action)
def open_file(self):
# 创建文件对话框
options = QFileDialog.Options()
# 设置文件对话框为只读模式
options |= QFileDialog.ReadOnly
# 打开文件对话框,获取用户选择的文件名和类型
file_name, _ = QFileDialog.getOpenFileName(self, 'Open File', '', 'Text Files (*.txt)', options=options)
# 如果用户选择了文件,就打开文件并读取其中的数据
if file_name:
with open(file_name, 'r') as f:
# 读取文件的所有行
lines = f.readlines()
results = []
# 遍历所有行,使用正则表达式匹配以“SVSPOTMOV”开头的行,并将匹配的行保存到结果列表中
for line in lines:
if re.match(r'^SVSPOTMOV', line):
results.append(line)
# 将结果列表中的所有行连接成一个字符串,并显示在文本编辑框中
self.text_edit.setPlainText('\n'.join(results))
def save_file(self):
# 创建文件对话框
options = QFileDialog.Options()
# 设置文件对话框为不使用本地对话框
options |= QFileDialog.DontUseNativeDialog
# 打开文件对话框,获取用户选择的文件名和类型
file_name, _ = QFileDialog.getSaveFileName(self, 'Save File', '', 'Text Files (*.txt)', options=options)
# 如果用户选择了文件,就将文本编辑框中的内容保存到文件中
if file_name:
with open(file_name, 'w') as f:
f.write(self.text_edit.toPlainText())
if __name__ == '__main__':
# 创建应用程序对象
app = QApplication([])
# 创建主窗口对象
window = MainWindow()
# 显示主窗口
window.show()
# 运行应用程序的主循环
app.exec_()
```
希望这些注释能够帮助你更好地理解代码的逻辑和实现方式。
阅读全文