繁体   English   中英

pyqt4:QTableWidget单元格着色导致拖放

[英]pyqt4: QTableWidget cell coloring causes drag-and-drop

我创建一个表和一个按钮:

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)尝试过,但是没有效果。 任何想法如何解决这个问题?

提亚·马丁

尝试断开cellChanged信号(如果正在使用),然后再重新连接,这对我有用...

self.disconnect(self.table, QtCore.SIGNAL("cellChanged(int, int)"),self.someMethod)             
...... do setBeckground stuff...
self.connect(self.table, QtCore.SIGNAL("cellChanged(int, int)"),self.someMethod)

或在您的表中禁用/启用mainWindow ...希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM