简介
根据 《快速掌握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)
- QMenuBar 类的常用方法
方法 |
说明 |
addAction() |
添加菜单项 |
addActions() |
添加多个菜单项 |
addSeparator() |
添加分割线 |
- QMenu 类的常用方法
方法 |
说明 |
addAction() |
添加菜单项 |
addMenu() |
添加菜单栏 |
addSeparator() |
添加分割线 |
setTitle() |
添加菜单 |
tiltle() |
获取菜单的标题文本 |
- 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)
if choice == QMessageBox.Yes:
self.save_file(self.text.toHtml())
self.text.clear()
elif choice == QMessageBox.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