一、效果展示

二、设计PyQt界面
2.1、设置图标
self.setWindowIcon(QIcon('./images/icon/1.png')) # 窗口图标
![]()
2.2、设置标题
self.file_name = '无标题-新建文本文档' # 默认文件名
self.setWindowTitle(self.file_name) # 窗口标题

2.3、添加菜单栏、工具栏、状态栏
# 创建菜单栏
self.menu_bar = QMenuBar(self)
self.setMenuBar(self.menu_bar)
# 创建工具栏
self.tool_bar = QToolBar(self)
self.addToolBar(self.tool_bar)
self.tool_bar.addAction(self.new_action) # 添加新建操作到工具栏
self.tool_bar.addAction(self.newS_action) # 添加保存操作到工具栏
# 创建字体和颜色按钮
self.font_btn = QToolButton(self) # 字体按钮
self.font_btn.setIcon(QIcon('./images/icon/font.png')) # 设置图标
self.tool_bar.addWidget(self.font_btn)
self.color_btn = QToolButton(self) # 颜色按钮
self.color_btn.setIcon(QIcon('./images/icon/color.png')) # 设置图标
self.tool_bar.addWidget(self.color_btn)
# 创建文本编辑区
self.text_edit = QTextEdit(self)
self.setCentralWidget(self.text_edit)
![]()

2.4、菜单栏中添加菜单
# 创建文件菜单
self.file_menu = QMenu('文件(F)', self)
self.menu_bar.addMenu(self.file_menu)
# 创建编辑菜单
self.edit_menu = QMenu('编辑(E)', self)
self.menu_bar.addMenu(self.edit_menu)
![]()
2.5、菜单栏中的菜单添加动作(选项)
# 为文件菜单创建操作
self.new_action = QAction('新建(N)', self) # 新建操作
self.new_action.setIcon(QIcon('./images/icon/new.png')) # 设置图标
self.new_action.setShortcut(QKeySequence.New) # 设置快捷键
self.file_menu.addAction(self.new_action) # 添加到文件菜单
self.newO_action = QAction('打开(O)', self) # 打开操作
self.newO_action.setIcon(QIcon('./images/icon/open.png')) # 设置图标
self.newO_action.setShortcut(QKeySequence.Open) # 设置快捷键
self.file_menu.addAction(self.newO_action)
self.newS_action = QAction('保存(S)', self) # 保存操作
self.newS_action.setIcon(QIcon('./images/icon/save.png')) # 设置图标
self.newS_action.setShortcut(QKeySequence.Save) # 设置快捷键
self.file_menu.addAction(self.newS_action)
self.newA_action = QAction('另保存为(A)', self) # 另存为操作
self.newA_action.setIcon(QIcon('./images/icon/save.png')) # 设置图标
self.newA_action.setShortcut(QKeySequence.SaveAs) # 设置快捷键
self.file_menu.addAction(self.newA_action)
# 为编辑菜单创建操作
self.newC_action = QAction('复制(C)', self) # 复制操作
self.newC_action.setIcon(QIcon('./images/icon/copy.png')) # 设置图标
self.newC_action.setShortcut(QKeySequence.Copy) # 设置快捷键
self.edit_menu.addAction(self.newC_action)
self.newP_action = QAction('粘贴(P)', self) # 粘贴操作
self.newP_action.setIcon(QIcon('./images/icon/paste.png')) # 设置图标
self.newP_action.setShortcut(QKeySequence.Paste) # 设置快捷键
self.edit_menu.addAction(self.newP_action)
self.newT_action = QAction('剪辑(T)', self) # 剪切操作
self.newT_action.setIcon(QIcon('./images/icon/textitalic.png')) # 设置图标
self.newT_action.setShortcut(QKeySequence.Cut) # 设置快捷键
self.edit_menu.addAction(self.newT_action)
self.newU_action = QAction('撤销(U)', self) # 撤销操作
self.newU_action.setIcon(QIcon('./images/icon/undo.png')) # 设置图标
self.newU_action.setShortcut(QKeySequence.Undo) # 设置快捷键
self.edit_menu.addAction(self.newU_action)
self.newR_action = QAction('反撤销(R)', self) # 反撤销操作
self.newR_action.setIcon(QIcon('./images/icon/dir.png')) # 设置图标
self.newR_action.setShortcut(QKeySequence.Redo) # 设置快捷键
self.edit_menu.addAction(self.newR_action)


2.6、添加文本编辑区域
# 创建文本编辑区使其设置中心窗口
self.text_edit = QTextEdit(self)
self.setCentralWidget(self.text_edit)

三、菜单栏业务实现
3.1连接操作与其相应的槽函数
self.new_action.triggered.connect(self.new_action_slot) # 新建文件
self.newO_action.triggered.connect(self.open_action) # 打开文件
self.newS_action.triggered.connect(self.save_action_slot) # 保存文件
self.newA_action.triggered.connect(self.saveAs_action_slot) # 另存为文件
3.2、连接编辑操作
self.newC_action.triggered.connect(self.text_edit.copy) # 复制
self.newP_action.triggered.connect(self.text_edit.paste) # 粘贴
self.newT_action.triggered.connect(self.text_edit.cut) # 剪切
self.newU_action.triggered.connect(self.text_edit.undo) # 撤销
self.newR_action.triggered.connect(self.text_edit.redo) # 反撤销

最低0.47元/天 解锁文章
1040

被折叠的 条评论
为什么被折叠?



