gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 21:16:09 24 4
gpt4 key购买 nike

相关帖子在这里

QTablewidget drop without creating new rows

<小时/>

但这尚未得到证实。

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

我正在制作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()

这是显示的小部件。 enter image description here

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

<强> After inserted:

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

你有什么想法吗?

最佳答案

我不知道为什么,但我可以做到。

为了做到这一点,

self.setAcceptDrops(True)
self.setDragEnabled(True)

限制仅有的两个属性就达到了我的目的。

关于python - 如何防止在 PySide 中使用 QTableWidget 删除项目时插入新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54693219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com