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】:

您想首先获得QTextCursorQTextEdit

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): 控制文本选择的函数

matplotlib 不导入 PyQt4、PyQt5 或 PySide

PyQt 或 PySide - 使用哪一个 [关闭]

pyside QTextEdit 选中文本事件