获取光标前的文本
Getting text before the cursor
假设我输入一个换行的段落,例如,
Hey mr Nikhil
Howdy you
Funny$ life isn't it.
现在将美元符号视为我的光标。
如果我可以通过此代码打印我的文本,
print(self.toPlainText())
那我怎样才能得到光标前的文本,这样我的输出就是,
Hey mr Nikhil
Howdy you
Funny
请帮忙。
您必须使用光标位置:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class Widget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
lay = QVBoxLayout(self)
self.te = QTextEdit()
self.te.setPlainText('''Hey mr Nikhil\nHowdy you\nFunny life isn't it.''')
lay.addWidget(self.te)
button = QPushButton("Click Me")
lay.addWidget(button)
button.clicked.connect(self.on_clicked)
def on_clicked(self):
p = self.te.textCursor().position()
result = self.te.toPlainText()[:p]
print("result:\n{}".format(result))
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
假设我输入一个换行的段落,例如,
Hey mr Nikhil
Howdy you
Funny$ life isn't it.
现在将美元符号视为我的光标。 如果我可以通过此代码打印我的文本,
print(self.toPlainText())
那我怎样才能得到光标前的文本,这样我的输出就是,
Hey mr Nikhil
Howdy you
Funny
请帮忙。
您必须使用光标位置:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class Widget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
lay = QVBoxLayout(self)
self.te = QTextEdit()
self.te.setPlainText('''Hey mr Nikhil\nHowdy you\nFunny life isn't it.''')
lay.addWidget(self.te)
button = QPushButton("Click Me")
lay.addWidget(button)
button.clicked.connect(self.on_clicked)
def on_clicked(self):
p = self.te.textCursor().position()
result = self.te.toPlainText()[:p]
print("result:\n{}".format(result))
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())