0

タプル:名前のペアの辞書があります。QListWidgetに名前を表示しますが、タプルを取得して操作します。名前は厳密に表示目的です。以下のコードのsetFlags行を使用すると、表示名を編集できますが、実際に実行できるようにしたいのは、タプルデータを編集することです。Qt.EditRoleビットを追加しようとしましたが、問題が発生したため、QListWidgetに空白行しか表示されませんでした。ユーザーに(ユーザーインターフェイスを介して)タプルデータを編集させてから、コードで辞書にクエリを実行して表示名を更新するにはどうすればよいですか?

for tuple in tuples:
    name = dict[tuple]
    this_item = QListWidgetItem(name)
    this_item.setData(Qt.UserRole,tuple)
#   this_item.setData(Qt.EditRole, tuple)
    this_item.setFlags(this_item.flags() | Qt.ItemIsEditable)
    self.addItem(this_item)
4

1 に答える 1

0

名前の背後にあるデータを編集するには、カスタム編集環境を作成するメソッドをQListWidget内に追加します。

def edit_items(self):
    dialog = MyQDialog(self.parent())
    table = QTableWidget(self.count(),2,dialog)
    for row in range(0, self.count()):
        spec = repr(self.item(row).data(32).toPyObject())
        name = self.item(row).text()
        spec_item = QTableWidgetItem(spec)
        name_item = QTableWidgetItem(name)
        table.setItem(row,0,name_item)
        table.setItem(row,1,spec_item)
    layout = QHBoxLayout()
    layout.addStrut(550)
    layout.addWidget(table)
    dialog.setLayout(layout)
    dialog.show()

そしてそこから行きます。

于 2011-12-01T20:58:14.473 に答える