PyQt5项目:记事本

简介

根据 《快速掌握PyQt5》第二十三章 主窗口QMainWindow
进行重组的一个内容

主界面

def ui_init(self):
        self.setWindowTitle('记事本')
        self.resize(700,400)
        self.text = QTextEdit() # 创建文本对象
        self.layout=QHBoxLayout() # 创建水平布局对象
        self.status_bar = self.statusBar() #创建状态栏对象
        self.mime_data = QMimeData() # 创建数据容器
        self.clipboard = QApplication.clipboard() #创建剪贴板对象


        self.layout.addWidget(self.text) # 向水平布局中添加文本对象
        self.widget = QWidget() # 创建一个窗口对象

        self.menu = self.menuBar() # 创建一个菜单对象
        self.file = self.menu.addMenu('文件') # 向菜单创建文件菜单栏
        self.new = QAction('新建(&N)') # 创建一个新建菜单功能
        self.new.setShortcut('Ctrl+N') # 为新建功能添加快捷键
        self.open = QAction('打开(&O)') # 创建一个打开的菜单功能
        self.open.setShortcut('Ctrl+O') # 为打开功能添加快捷键
        self.save = QAction('保存(&S)') # 创建一个保存的菜单功能
        self.save.setShortcut('Ctrl+S') # 为保存功能添加快捷键
        self.file.addActions([self.new,self.open,self.save]) # 将新建功能,打开功能,保存功能添加到文件这个菜单栏上
		
		# 下面的代码一样主要是创建一个编辑的菜单栏
        self.edit = self.menu.addMenu('编辑')
        self.copy = QAction('复制(&C)') # 复制
        self.copy.setShortcut('Ctrl+C')
        self.paste = QAction('粘贴(&V)') # 粘贴
        self.paste.setShortcut('Ctrl+V')
        self.edit.addActions([self.copy,self.paste]) # 将功能添加到编辑这个菜单栏中
		
		# 下面的代码一样主要是创建一个设置的菜单栏
        self.setting = self.menu.addMenu('设置')
        self.font = QAction('字体(&F)')
        self.color = QAction('颜色(&L)')
        self.setting.addActions([self.font,self.color])

    
        #设置布局
        self.widget.setLayout(self.layout) # 将水平布局设置到窗口中
        self.setCentralWidget(self.widget) # 将窗口水平居中
  1. QMenuBar 类的常用方法
方法 说明
addAction() 添加菜单项
addActions() 添加多个菜单项
addSeparator() 添加分割线
  1. QMenu 类的常用方法
方法 说明
addAction() 添加菜单项
addMenu() 添加菜单栏
addSeparator() 添加分割线
setTitle() 添加菜单
tiltle() 获取菜单的标题文本
  1. QAction 类的常用方法
方法 说明
setIcon() 设置菜单项图标
setconVisibleInMenu() 设置图标是否显示
setText() 添加菜单项文本
setIconText() 设置图标文本
setShortcut() 设置快捷键
setToolTip() 设置快捷键
setEnabled() 设置菜单项是否可用
text() 获取菜单项的文本

功能槽

def new_file(self):
        '''
        新建文件的函数
        '''
        if self.is_saved and self.text.toPlainText():# 判断文本是否保存了和文本框上是否有数据,如果保存了,文本框上有数据进行下面的语句
            choice = QMessageBox.question(self, '保存文件', '你要保存文本吗?',QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel) # 创建一个消息对话框,设置了三个选项yes,No,Cancel
            if choice == QMessageBox.Yes: # 如果选择yes
                self.save_file(self.text.toHtml()) # 保存文本框上的数据
                self.text.clear() # 清楚文本框上的数据
            elif choice == QMessageBox.No: # 如果选择No
                self.text.clear() # 清楚文本框上的数据
            else:
                pass
        else:
            self.text.clear() # 清楚文本框上的数据

    def open_file(self):
        '''
        打开文件的函数
        '''
        if self.is_saved:# 判断文件是否保存,若保存了,则进行下面的语句
            choice = QMessageBox.question(self, '保存文件', '你要保存文本吗?',QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值