📜  使用 PyQt5 创建记事本 - Python(1)

📅  最后修改于: 2023-12-03 15:36:33.313000             🧑  作者: Mango

使用 PyQt5 创建记事本 - Python

简介

PyQt5 是一个 Python 语言的界面库,它是 PyQt4 的增强版本。PyQt5 可以与 Python 2 和 Python 3 一起使用,并且支持 Mac、Windows 和 Linux 等操作系统。本文将介绍如何使用 PyQt5 创建一个简单的记事本应用程序。

安装

可以使用 pip 命令来安装 PyQt5:

pip install PyQt5
示例代码

以下是创建记事本的示例代码:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QAction, QFileDialog

class Notepad(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.textEdit = QTextEdit()
        self.setCentralWidget(self.textEdit)

        self.statusBar()

        openFile = QAction('Open', self)
        openFile.setShortcut('Ctrl+O')
        openFile.setStatusTip('Open new File')
        openFile.triggered.connect(self.showDialog)

        saveFile = QAction('Save', self)
        saveFile.setShortcut('Ctrl+S')
        saveFile.setStatusTip('Save the file')
        saveFile.triggered.connect(self.saveToFile)

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(openFile)
        fileMenu.addAction(saveFile)

        self.setGeometry(300, 300, 350, 300)
        self.setWindowTitle('Notepad')
        self.show()

    def showDialog(self):

        fname = QFileDialog.getOpenFileName(self, 'Open file', '/home')

        if fname[0]:
            with open(fname[0], 'r') as f:
                self.textEdit.setText(f.read())

    def saveToFile(self):

        fname = QFileDialog.getSaveFileName(self, 'Save file', '/home')

        if fname[0]:
            with open(fname[0], 'w') as f:
                f.write(self.textEdit.toPlainText())

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Notepad()
    sys.exit(app.exec_())
代码解析
  1. 首先,我们导入了必要的模块:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QAction, QFileDialog
  1. 接着,我们创建了一个 QMainWindow 类的子类 Notepad:
class Notepad(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
  1. 在 initUI 方法中,我们创建了一个 QTextEdit 控件,并将其设置为窗口的中央部件:
        self.textEdit = QTextEdit()
        self.setCentralWidget(self.textEdit)
  1. 我们创建了一个状态栏:
        self.statusBar()
  1. 然后,我们创建了两个 QAction 对象,一个打开文件,一个保存文件:
        openFile = QAction('Open', self)
        openFile.setShortcut('Ctrl+O')
        openFile.setStatusTip('Open new File')
        openFile.triggered.connect(self.showDialog)

        saveFile = QAction('Save', self)
        saveFile.setShortcut('Ctrl+S')
        saveFile.setStatusTip('Save the file')
        saveFile.triggered.connect(self.saveToFile)
  1. 最后,我们将这些操作添加到菜单栏中:
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(openFile)
        fileMenu.addAction(saveFile)
  1. 我们还实现了 showDialog 和 saveToFile 方法:
    def showDialog(self):

        fname = QFileDialog.getOpenFileName(self, 'Open file', '/home')

        if fname[0]:
            with open(fname[0], 'r') as f:
                self.textEdit.setText(f.read())

    def saveToFile(self):

        fname = QFileDialog.getSaveFileName(self, 'Save file', '/home')

        if fname[0]:
            with open(fname[0], 'w') as f:
                f.write(self.textEdit.toPlainText())
  1. 最后,我们创建了一个 QApplication 对象并运行:
if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Notepad()
    sys.exit(app.exec_())
运行

运行程序后,在菜单栏中选择 File -> Open 可以打开一个文本文件;选择 File -> Save 可以保存当前内容到一个文本文件。

总结

本文介绍了如何使用 PyQt5 创建一个简单的记事本应用程序。PyQt5 是一个强大的 Python 界面库,可以创建各种类型的图形用户界面。