Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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 使用光标在QTreeWidgetItem中选择文本_Python_Python 3.x_Pyqt_Pyside - Fatal编程技术网

Python 使用光标在QTreeWidgetItem中选择文本

Python 使用光标在QTreeWidgetItem中选择文本,python,python-3.x,pyqt,pyside,Python,Python 3.x,Pyqt,Pyside,我试图找到一种方法,用光标选择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 Ro

我试图找到一种方法,用光标选择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)

我觉得我很接近了,但我在这里遗漏了一些东西:/

好的,我找到了一个解决方案,尽管我无法确定如何选择所有文本,但我能够清理我的脚本以获得所需的结果:

def checkEditFUNC(self, item, column):
    '''
    Allows editing of certain items in the table
    :param item: item name
    :param column: Column number
    '''

    # To allow editing only in column 1 and 2
    if column == 1:
        # Makes Row editable
        item.setFlags(item.flags() | QtCore.Qt.ItemIsEditable)
    else:
        item.setFlags(item.flags() & ~QtCore.Qt.ItemIsEditable)

你对这个问题的描述似乎很混乱。请提供详细信息,并清楚说明您期望的行为。