我能够显示QTextEdit小部件并检测用户何时更改所选文本。但是,我不确定如何获取所选文本和表示选择的起始位置和结束位置的整数值,测量为文本字段开头的字符数。我需要创建QTextCursor吗?我很欣赏一个例子。这是我目前的代码:
import sys
from PySide.QtCore import *
from PySide.QtGui import *
class Form(QDialog):
def __init__(self, parent=None):
super(Form, self).__init__(parent)
self.setWindowTitle("My Form")
self.edit = QTextEdit("Type here...")
self.button = QPushButton("Show Greetings")
self.button.clicked.connect(self.greetings)
self.quit = QPushButton("QUIT")
self.quit.clicked.connect(app.exit)
self.edit.selectionChanged.connect(self.handleSelectionChanged)
layout = QVBoxLayout()
layout.addWidget(self.edit)
layout.addWidget(self.button)
layout.addWidget(self.quit)
self.setLayout(layout)
def greetings(self):
print ("Hello %s" % self.edit.text())
def handleSelectionChanged(self):
print ("Selection start:%d end%d" % (0,0)) # change to position & anchor
if __name__ == '__main__':
app = QApplication(sys.argv)
form=Form()
form.show()
sys.exit(app.exec_())
答案 0 :(得分:1)
您可以通过QTextEdit
在QTextCursor
内进行选择,是的。它应该使用selectionStart和selectionEnd方法:
def handleSelectionChanged(self):
cursor = self.edit.textCursor()
print ("Selection start: %d end: %d" %
(cursor.selectionStart(), cursor.selectionEnd()))