在 class 中连接 Connections 时需要帮助

Need help in connecting Connections in a class

我用 QTableWidget 创建了一个 window,它有一个带有 2 个按钮的单元格。

按钮是在单独的 class 中创建的,我从主过程传递 QTableWidget 实例。

我无法获取在按钮创建中连接的按钮事件 class。我的代码片段如下

class Buttons():

    def __init__(self,tab):

        buttonLayout = QtGui.QHBoxLayout()
        buttonLayout.setContentsMargins(0,0,0,0)

        self.saveButtonItem = QtGui.QPushButton('Save')
        self.deleteButtonItem = QtGui.QPushButton('Delete')

        buttonLayout.addWidget(self.saveButtonItem)
        buttonLayout.addWidget(self.deleteButtonItem)

        cellWidget = QtGui.QWidget()
        cellWidget.setLayout(buttonLayout)

        tab.insertRow(tab.rowCount())

        tab.setCellWidget(tab.rowCount() - 1,0,cellWidget)

        self.setconncection()

    def setconncection(self):

        self.saveButtonItem.clicked.connect(self.btnSaveClicked)
        self.deleteButtonItem.clicked.connect(self.btnDeleteClicked)
        print 'connections are set'

    def btnSaveClicked(self):

        print 'save clicked'

    def btnDeleteClicked(self):

        print 'delete clicked'

class testing(QtGui.QTableWidget):

    def __init__(self):

        super(testing,self).__init__()

        self.setColumnCount(1)

        for i in xrange(3):

            self.r = Buttons(self)

if __name__ == "__main__" :

    import sys

    app = QtGui.QApplication (sys.argv)

    win = testing ()
    win.show()

    sys.exit(app.exec_())

我的window在运行时间如下

__init__ 测试之后,对 Buttons 实例的引用丢失并且对象被销毁。 (变量 r 受到影响但未使用。)

为其保留 link(请参阅以下代码片段的最后一行)使其正常工作。

class testing(QtGui.QTableWidget):

def __init__(self):

        super(testing,self).__init__()

        self.setColumnCount(1)
        self.setRowCount(1)

        self.buttons = []
        for i in xrange(3):
            self.buttons.append(Buttons(self))