如何在QTreeview中删除目录中的文件夹?

时间:2015-01-22 10:49:42

标签: python python-2.7 pyside signals-slots qtreeview

我正在为我的项目创建一个应用程序,

我的方案是:我选择目录并在QTreeview中显示树文件夹,之后我会在文件夹上单击,它会显示“删除”菜单。当我推它时,我选择的文件夹将被删除。

一切都很好,直到我右键点击QTreeview,我的应用程序中间关闭。和错误:

  

Traceback(最近一次调用最后一次):文件   “C:/Users/Administrator/PycharmProjects/untitled/Library/test.py”   第114行,在showMenu中       self.delete.connect(self.removeButton())TypeError:PySide.QtCore.QObject.connect():没有足够的参数

这是我的代码:

def showMenu(self, pos):
    menu = QtGui.QMenu(self)
    self.delete = QtGui.QAction("Delete",menu)
    menu.addAction(self.newfolder)
    menu.popup(self.folders_lv.viewport().mapToGlobal(pos))
    self.delete.connect(self.removeButton())

def removeButton(self):
    self.deleteLater()

谢谢。

1 个答案:

答案 0 :(得分:1)

您没有正确连接信号。 QActionseveral signals,您需要将其中一个连接到方法或函数。因此,要将triggered信号连接到removeButton方法,请执行以下操作:

    self.delete.triggered.connect(self.removeButton)