欢迎访问宙启技术站
智能推送

使用PyQt库构建简单的文本编辑器GUI界面

发布时间:2024-01-13 15:06:50

PyQt 是一个流行的 Python GUI 库,也是一个用于创建桌面应用程序的强大工具包。下面是一个使用 PyQt 构建简单的文本编辑器的例子:

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


class TextEditor(QMainWindow):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        self.text_edit = QTextEdit()
        self.setCentralWidget(self.text_edit)

        self.create_menu_bar()

        self.setGeometry(100, 100, 800, 600)
        self.setWindowTitle("Text Editor")
        self.show()

    def create_menu_bar(self):
        menubar = self.menuBar()

        file_menu = menubar.addMenu("File")

        open_action = QAction("Open", self)
        open_action.setShortcut("Ctrl+O")
        open_action.triggered.connect(self.open_file)
        file_menu.addAction(open_action)

        save_action = QAction("Save", self)
        save_action.setShortcut("Ctrl+S")
        save_action.triggered.connect(self.save_file)
        file_menu.addAction(save_action)

    def open_file(self):
        file_dialog = QFileDialog.getOpenFileName(self, "Open File")
        if file_dialog[0]:
            file_path = file_dialog[0]
            with open(file_path, "r") as file:
                self.text_edit.setText(file.read())

    def save_file(self):
        file_dialog = QFileDialog.getSaveFileName(self, "Save File")
        if file_dialog[0]:
            file_path = file_dialog[0]
            with open(file_path, "w") as file:
                file.write(self.text_edit.toPlainText())


if __name__ == "__main__":
    app = QApplication(sys.argv)
    editor = TextEditor()
    sys.exit(app.exec_())

以上代码定义了一个名为 TextEditor 的类,该类继承自 QMainWindow。在 init_ui 方法中,我们创建了一个 QTextEdit 控件,并设置为窗口的中心部件。

create_menu_bar 方法创建了一个菜单栏并添加了 "File" 菜单。在 "File" 菜单中,我们添加了 "Open" 和 "Save" 两个动作(使用快捷键 Ctrl+O 和 Ctrl+S),并分别连接到 open_filesave_file 方法。

open_file 方法使用 QFileDialog 对话框选择要打开的文件,并将文件内容读取到 QTextEdit 控件中。

save_file 方法使用 QFileDialog 对话框选择要保存的文件路径,并将 QTextEdit 控件中的文本保存到文件中。

if __name__ == "__main__" 中,我们创建了一个 QApplication 实例并运行应用程序,最后使用 sys.exit() 退出应用程序。

这个简单的文本编辑器示例演示了如何使用 PyQt 构建一个具有基本功能的应用程序。你可以通过运行上述代码来尝试它。