使用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_file 和 save_file 方法。
open_file 方法使用 QFileDialog 对话框选择要打开的文件,并将文件内容读取到 QTextEdit 控件中。
save_file 方法使用 QFileDialog 对话框选择要保存的文件路径,并将 QTextEdit 控件中的文本保存到文件中。
在 if __name__ == "__main__" 中,我们创建了一个 QApplication 实例并运行应用程序,最后使用 sys.exit() 退出应用程序。
这个简单的文本编辑器示例演示了如何使用 PyQt 构建一个具有基本功能的应用程序。你可以通过运行上述代码来尝试它。
