2017-12-06 1 views
2

커서로 QtGui.QTreeWidget.QTreeWidgetItem.text (1)를 선택하는 방법을 찾으려고합니다.QTreeWidgetItem에서 커서로 텍스트 선택

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 단축키를 실행하거나 QTextWizard를 사용하여 QTreeWidgetItem으로 작업하는 방법을 배우는 것입니다.

editor = QtGui.QTextEdit(self.treewidget) 
cursor = editor.textCursor() 
cursor.movePosition(QtGui.QTextCursor.Start, QtGui.QTextCursor.KeepAnchor) 
editor.setTextCursor(cursor) 

난 내가 가까이있어 같은 느낌,하지만 여기 뭔가를 놓친 거지 :/

+0

문제 설명이 매우 혼란 스럽습니다. [mcve]를 입력하고 기대하는 행동을 분명하게 기술하십시오. – ekhumoro

답변

0

좋아, 나는이에 대한 해결책을 찾을 수 있지만 내가 어떻게 할 수 있었다 모든 텍스트를 선택하는 I 수없는 운동 원하는 결과를 얻으려면 스크립트를 정리하십시오.

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) 
관련 문제