要保存QTextEdit的光标位置,可以使用QTextCursor的相关方法。以下是一个示例代码:
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QVBoxLayout, QWidget
from PyQt5.QtGui import QTextCursor
from PyQt5.QtCore import QSettings, QPoint
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.settings = QSettings("my_app", "my_app") # 创建QSettings对象,用于保存光标位置
self.text_edit = QTextEdit()
self.setCentralWidget(self.text_edit)
# 读取保存的光标位置
cursor_pos = self.settings.value("cursor_pos", QPoint(0, 0), type=QPoint)
self.text_edit.setTextCursor(QTextCursor(cursor_pos))
def closeEvent(self, event):
# 保存光标位置
cursor_pos = self.text_edit.textCursor().pos()
self.settings.setValue("cursor_pos", cursor_pos)
super().closeEvent(event)
if __name__ == '__main__':
app = QApplication([])
main_window = MainWindow()
main_window.show()
app.exec_()
在这个示例中,我们创建了一个MainWindow类,继承自QMainWindow。在窗口中,我们使用了一个QTextEdit作为中央部件,并将其设置为窗口的中心部件。在关闭窗口时,我们保存了QTextEdit中光标的位置。
为了实现保存和读取光标位置,我们使用了QSettings类。在closeEvent方法中,我们使用textCursor().pos()方法获取当前光标的位置,并将其保存到QSettings对象中。在构造函数中,我们使用了QSettings对象的value方法读取之前保存的光标位置,并使用setTextCursor方法将光标设置为读取的位置。
注意:在示例中,我们使用了QPoint(0, 0)作为默认值。这是为了在第一次运行程序时,如果没有保存的光标位置,就设置光标在(0, 0)的位置。你可以根据需要修改这个默认值。
上一篇:保存请求-〉服务器到数据库