Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在光标之前获取文本_Python_Python 3.x_Pyqt_Pyqt5_Qtextedit - Fatal编程技术网

Python 在光标之前获取文本

Python 在光标之前获取文本,python,python-3.x,pyqt,pyqt5,qtextedit,Python,Python 3.x,Pyqt,Pyqt5,Qtextedit,假设我在一段中键入新行,例如 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 im

假设我在一段中键入新行,例如

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_())