次のようにテーブルとボタンを作成します。
self.table = QtGui.QTableWidget()
self.table.setObjectName('table')
self.table.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
self.table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
self.table.setDragDropMode(False)
self.verticalLayout.addWidget(self.table)
self.btn_del = QtGui.QPushButton(self)
self.btn_del.setObjectName('btn_del')
self.btn_del.setEnabled(False)
QtCore.QObject.connect(self.btn_del, QtCore.SIGNAL('clicked()'), self.del_feat)
ユーザーがテーブル内の行をマークしてボタンをクリックすると、選択した行が色付けされます。したがって、私はこれを使用します:
def del_feat(self):
del_list = []
for i in self.table.selectionModel().selectedRows():
del_list.append(i.row())
col = len(self.columns)
brush_gray = QtGui.QBrush(QtGui.QColor(232,232,232))
brush_gray.setStyle(QtCore.Qt.SolidPattern)
for r in del_list[:]:
for i in range(col):
self.ui_c.table.item(r,i).setBackground(brush_gray)
色付けは機能していますが、どういうわけか、この色付け方法を使用すると、行を選択するためにクリックされたセルの値が、マウスが置かれた最後のセルに書き込まれます。セルが色付けされず、選択されているだけの場合、何も起こりません。で試してみましたsetDragDropMode(False)
が、効果がありません。この問題を解決する方法はありますか?
ティア・マーティン