PyQt 或 PySide:QTextEdit 取消全选
Posted
技术标签:
【中文标题】PyQt 或 PySide:QTextEdit 取消全选【英文标题】:PyQt or PySide: QTextEdit deselect all 【发布时间】:2014-08-17 09:11:04 【问题描述】:我正在使用 PySide(PyQt 也可以),我想取消选择 QTextEdit 中的所有内容。选择所有内容非常简单,由 self.textedit.selectAll() 完成,但我找不到取消选择所有内容的简单方法。有没有我不知道的直接方法,或者比这更复杂?
谢谢。
【问题讨论】:
【参考方案1】:您想首先获得QTextCursor
的QTextEdit
my_text_cursor = my_text_edit.textCursor()
然后清除QTextCursor
的选择
my_text_cursor.clearSelection()
然后用新的QTextCursor
更新QLineEdit
(请参阅documentation 以获取QTextEdit.textCursor()
,这表明更新返回的QTextCursor
实际上不会影响QTextEdit
,除非您还调用以下命令)
my_text_edit.setTextCursor(my_text_cursor)
【讨论】:
谢谢,效果很好。但这真的很奇怪,QTextEdit 没有一个很好的方法来取消选择所有内容,而 QLineEdit 有......【参考方案2】:也一样,不是吗?
QLineEdit.deselect (self)
文本全部在您的对象中。
示例;
.
myQLineEdit = QLineEdit()
.
.
myQLineEdit .selectAll()
.
.
myQLineEdit.deselect()
.
参考:http://pyqt.sourceforge.net/Docs/PyQt4/qlineedit.html#deselect
或者,您是否要取消选择所有QLineEdit
,您只需找到Children 是一个QLineEdit
并取消选择全部;
myQWidget= QWidget()
.
.
listsMyQLineEdit = myQWidget.findChildren(QLineEdit)
for myQLineEdit in listsMyQLineEdit:
myQLineEdit.deselect()
.
.
问候,
【讨论】:
这仅适用于 QLineEdit,QTextEdit 出于某种奇怪的原因没有此功能...以上是关于PyQt 或 PySide:QTextEdit 取消全选的主要内容,如果未能解决你的问题,请参考以下文章
检查 QTextEdit 中所选文本的格式 - PySide6
QTextedit find() 总是返回 False (pyside2)
Python/pyside,pyqt(pyside,pyqt optional): 控制文本选择的函数