Python----PyQt开发(PyQt高级:手搓一个简单的记事本)

一、效果展示

二、设计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)  # 反撤销
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值