在哪里初始化i,全球不接受

时间:2015-10-05 07:23:12

标签: python pyqt4

每次按下我的按钮def update后,i(i = 0)的初始化指令不允许递增i。在哪里初始化i,全球不接受。

这是我的计划:

#!/usr/bin/env python


import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *


class incre(QDialog):


    def __init__(self, parent=None):
        super(incre, self).__init__(parent)

        self.Button=QPushButton("Press")
        grid=QVBoxLayout()
        grid.addWidget(self.Button)
        self.setLayout(grid)

        self.connect(self.Button,SIGNAL("clicked()"),self.update)

    def update(self):
        i=0
        i=i+1
        print i


if __name__ == "__main__":

    app=QApplication(sys.argv)
    form=incre()
    form.show()
    app.exec_()   

1 个答案:

答案 0 :(得分:1)

我建议您在i方法中初始化__init__并将其设为incre类的attrubute。然后i只会在您创建incre实例时初始化一次。

class incre(QDialog):


    def __init__(self, parent=None):
        super(incre, self).__init__(parent)

        self.Button=QPushButton("Press")
        grid=QVBoxLayout()
        grid.addWidget(self.Button)
        self.setLayout(grid)

        self.connect(self.Button,SIGNAL("clicked()"),self.update)
        self.i = 0

    def update(self):
        self.i += 1
        print self.i