如何防止在 PySide 中使用 QTableWidget 删除项目时插入新行

这还没有得到证实。


它是重复的吗?但我敢问......


我在做 QTableWidget


我想安装拖放事件。


但它有副作用。


执行这段代码时,


from PySide import QtGui

from PySide import QtCore

import sys


class CustomTableWidget(QtGui.QTableWidget):

    def __init__(self,row=0,column=0,parent=None):

        super(CustomTableWidget,self).__init__(parent=None)

        self.setRowCount(row)

        self.setColumnCount(column)      

        self.selection_start = False    

        self.setAcceptDrops(True)

        self.setDragEnabled(True)

        self.setDragDropMode(QtGui.QAbstractItemView.DragDrop)

        self.setDragDropOverwriteMode(False)

        self.setDropIndicatorShown(True)


def main():

    try:

        QtGui.QApplication([])

    except Exception as e:


        print(e)

    table = CustomTableWidget(10,10)

    for i in range(10):

        for k in range(10):

            item = QtGui.QTableWidgetItem()

            item.setText("{0},{1}".format(i,k))

            table.setItem(i,k,item)

    table.show()

    sys.exit(QtGui.QApplication.exec_())

if __name__ == "__main__":

    main()

这是显示的小部件。

http://img1.mukewang.com/6189e18700019d4004950369.jpg

问题是当我将任意项目拖到其他项目中时,如果我放在项目的交叉点处,则会插入新行。

http://img2.mukewang.com/6189e1940001d1e808230394.jpg

我只想更改数据。我不想插入新行或新列。

你有什么主意吗?


繁花如伊
浏览 211回答 1
1回答

HUX布斯

我不知道为什么会这样,但我可以做到。为了做到这一点,self.setAcceptDrops(True) self.setDragEnabled(True)限制仅有的两个属性达到了我的目的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python