2016-05-10 11 views
1

プログラムでボタンを使用して選択されたlistWidgetアイテムを編集したいと思います。 、元のアイテムを削除しに戻って新たな編集を追加することなく、選択した項目を編集する方法がある場合、私は、私はこれを見たQListWidgetアイテムを編集したり追加したりすることなく編集するにはどうすればいいですか?

。全くわからない...しかし、私は、これは私が必要なものであることを確認していません私は、新しい値を渡すことができないよう:

selItems = listWidget.selectedItems() 

for item in selItems: 
    listWidget.editItem(item, "test") 

TypeError: QListWidget.editItem(QListWidgetItem): too many arguments 
+0

あなたが「編集」と言うときは、ユーザーが何か入力できるようにしますか?またはプログラムでプログラムを変更したいですか? –

+0

これをプログラム的に自分で変更する – Zak44

+0

正確に何を望んでいるかについての詳細がなければ答えにくいです。あなたはアイテムのテキストを設定して初期化しようとしていますか?あなたが何が起こるかを記述する、最小限の作業例が、ここで本当に役に立つでしょう! (これを参照してください:http://stackoverflow.com/help/mcve)この "ボタン"はどこに押すのですか? QListWidgetsはダブルクリックで既に編集可能ですが、あまりにも多くをやっているように聞こえます。 QListWidgetはまだ動作していますか?非常に簡単なものですか? – neuronet

答えて

3

editItem方法は、ユーザーがアイテムを編集したいときに使用されます。項目を編集可能にすると、既定では、QItemDelegateを作成して編集用に別のウィジェットを作成していない限り、ユーザーがテキストを編集できるようにセルにQLineEditウィジェットが作成されます。

だけsetText()を使用し、アイテムのテキストを変更します。 text()を使用すると、アイテムの現在のテキストを取得できます。

sel_items = listWidget.selectedItems() 

for item in sel_items: 
    item.setText(item.text() + ' plus more text') 
+0

私はSelectedItemsが欲しくないが、私は例えばIndexでItemを選択したいのですが?私はそれのための方法を見つけませんでした。 –

+1

@ErikŠťastnýあなたはこんな感じですか? ['QListWidget.item(row)'](http://pyqt.sourceforge.net/Docs/PyQt4/qlistwidget.html#item) –

+0

しかし、下のリンクを確認してください。 '.QListWidget.item(row)'を使うときにいくつか問題があります。http://stackoverflow.com/questions/41182466/python-pyqt-edit-item-at-specific-row-in-qlistwidget-without-takeitem-アンド・イン –

関連する問題