记事本炫酷代码
时间: 2023-07-02 19:12:44 浏览: 77
以下是一个炫酷的记事本应用程序的代码,使用了 PySide2 库和 Qt Designer 设计界面:
```
import sys
from PySide2.QtWidgets import QApplication, QMainWindow, QTextEdit, QFileDialog
from PySide2.QtGui import QIcon
from PySide2.QtCore import Qt
from ui_mainwindow import Ui_MainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# Load the UI from the .ui file
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
# Set the window icon
self.setWindowIcon(QIcon("icon.png"))
# Connect signals and slots
self.ui.actionNew.triggered.connect(self.new_file)
self.ui.actionOpen.triggered.connect(self.open_file)
self.ui.actionSave.triggered.connect(self.save_file)
self.ui.actionSave_As.triggered.connect(self.save_file_as)
self.ui.actionCut.triggered.connect(self.cut_text)
self.ui.actionCopy.triggered.connect(self.copy_text)
self.ui.actionPaste.triggered.connect(self.paste_text)
self.ui.actionUndo.triggered.connect(self.undo)
self.ui.actionRedo.triggered.connect(self.redo)
self.ui.textEdit.selectionChanged.connect(self.update_status)
# Set the initial status
self.update_status()
def new_file(self):
self.ui.textEdit.clear()
self.update_status()
def open_file(self):
file_path, _ = QFileDialog.getOpenFileName(self, "Open File")
if file_path:
with open(file_path, "r") as f:
self.ui.textEdit.setText(f.read())
self.update_status()
def save_file(self):
if self.current_file:
with open(self.current_file, "w") as f:
f.write(self.ui.textEdit.toPlainText())
else:
self.save_file_as()
def save_file_as(self):
file_path, _ = QFileDialog.getSaveFileName(self, "Save File", "", "Text Files (*.txt)")
if file_path:
with open(file_path, "w") as f:
f.write(self.ui.textEdit.toPlainText())
self.current_file = file_path
self.update_status()
def cut_text(self):
self.ui.textEdit.cut()
def copy_text(self):
self.ui.textEdit.copy()
def paste_text(self):
self.ui.textEdit.paste()
def undo(self):
self.ui.textEdit.undo()
def redo(self):
self.ui.textEdit.redo()
def update_status(self):
cursor = self.ui.textEdit.textCursor()
selected_text = cursor.selectedText()
if selected_text:
status = f"Selected: {len(selected_text)} characters"
else:
status = f"Characters: {self.ui.textEdit.document().characterCount()}"
self.ui.statusbar.showMessage(status)
if __name__ == "__main__":
# Create the application and main window
app = QApplication(sys.argv)
window = MainWindow()
window.show()
# Run the event loop
sys.exit(app.exec_())
```
其中,`ui_mainwindow.py` 是由 Qt Designer 生成的 UI 文件,包含了主窗口的布局和控件。这个记事本应用程序具有新建、打开、保存、编辑等常用功能,也支持撤销、重做、剪切、复制和粘贴等操作,还可以显示当前选中的文本长度或整个文本的字符数。该程序使用了 PySide2 库提供的 Qt 框架,可以跨平台运行。