PyQt中的拖放功能
我刚开始学习PyQt,遇到了一些问题。我在谷歌、PyQt的文档和Mr. Summerfield的书里都找过,但还是没找到解决办法。
我有一个QListWidget和一个QTableWidget,它们都可以拖放。我用的是这个例子:http://zetcode.com/tutorials/pyqt4/dragdrop/
这个例子运行得很好,因为我可以把ListWidget里的文本拖到TableWidget里,然后继续处理这些文本。
但是我希望在把文本拖到WidgetList后,能够立即获取到这个文本,而不需要再点击单元格。
我尝试了:
SIGNAL("itemChanged(QTableWidgetItem*)")
SIGNAL("currentItemChanged(QTableWidgetItem *,QTableWidgetItem *)")
但是没有结果。
如果有人能帮我,我会非常感激。
提前谢谢你的帮助。
1 个回答
2
我不是很明白你的问题,但我猜你的意思是想在放下某个项目后,选择或者高亮显示它?无论如何,这段代码可以让你获取到被放下的QTableWidgetItem,这样你就可以设置焦点、选择它等等。
如果是这样的话,你需要在你的放下事件中去做这个操作。
def dropEvent(self, e)
# Here's your QTablewidgetItem
item = self.itemAt(e.pos())
# Assuming "self" is a QTableWidget, by default will select it as well
self.setCurrentItem(item)
# It's also good practice to accept an event you've overwritten
# Depending on what you're doing, it will be either
# QtGui.QTableWidget.dropEvent(self, e)
# or
# e.accept()