2017-12-06 30 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) 

私は、デフォルトですべてのテキストが選択されることを知っています。しかし、私は編集を有効にしているので、編集を無効にすると、テキストが選択されていないという結果になります。

なぜあなたは食性を有効または無効にしていますか?
私はいくつかのうち1つの列のテキストのみを編集できるように設定しました。しかし、単にItemIsEditableをオンにすると、すべて列が編集可能になります。ただ1つの特定の列が必要なので、直ちに無効にする必要があります。

ノックオン効果は、希望の列のテキストの選択を解除します。私はまだそれを編集することができます、それはちょうど選択解除です。

だから、私は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) 

:/

+0

問題の説明は非常に混乱しています。 [mcve]を提供し、あなたが期待する行動を明確に述べてください。 – ekhumoro

答えて

0

私は私ができたすべてのテキストを選択するにはどのようにワークアウトできなかったものの、[OK]を、私は、これに対する解決策を見つけましたスクリプトをクリーンアップして目的の結果を得る:

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) 
関連する問題