【发布时间】:2018-05-20 11:22:54
【问题描述】:
我正在尝试找到一种用光标选择 QtGui.QTreeWidget.QTreeWidgetItem.text(1) 的方法。
if column == 1:
# Makes Row editable
item.setFlags(item.flags() | QtCore.Qt.ItemIsEditable)
# Select item to edit
Xitem = self.treewidget.editItem(item, column)
# Makes Row uneditable
item.setFlags(item.flags() & ~QtCore.Qt.ItemIsEditable)
我知道,默认情况下,所有文本都会被选中。但是,因为我启用了编辑,所以禁用编辑会导致文本被取消选择。
为什么要启用和禁用可食用性?
我已将其设置为您只能编辑其中一列的文本。但是,只需打开 ItemIsEditable 将使 所有 列可编辑,我只想要一个特定的列,所以我必须立即再次禁用它。
敲击效果,它取消选择所需列中的文本。我仍然可以编辑它,它只是被取消了。
所以我想 ctrl+a 选择所有。 一段时间以来,我一直在尝试弄清楚如何做到这一点,但无处可寻。
获得我想要的结果的方法是通过 python 代码运行 ctrl+a 热键,或者研究如何让 QTextCursor 的东西与 QTreeWidgetItem 一起工作。
editor = QtGui.QTextEdit(self.treewidget)
cursor = editor.textCursor()
cursor.movePosition(QtGui.QTextCursor.Start, QtGui.QTextCursor.KeepAnchor)
editor.setTextCursor(cursor)
我觉得我很接近了,但我只是在这里遗漏了一些东西:/
【问题讨论】:
-
您对问题的描述看起来很混乱。请提供minimal reproducible example 并明确说明您期望的行为。
标签: python python-3.x pyqt pyside