Форум сайта python.su
Добрый день, товарищи! Собственно в процессе изучения столкнулся с такой проблемой, при клике на кнопку(button), функция срабатывает один раз, почему так? Никак не пойму.
import sys from PyQt4 import QtGui class Example(QtGui.QWidget): def __init__(self): self.i = 0 super(Example, self).__init__() self.initUI() def initUI(self): self.setWindowTitle("Text Generator") self.setGeometry(300, 300, 350, 250) self.grid = QtGui.QGridLayout() button = QtGui.QPushButton("Generate text", self) button.move(125, 200) button.clicked.connect(self.generateText) self.setLayout(self.grid) self.show() def generateText(self, event): text = ["first", "second", "three", "fourth", "fifth", "sixth"] label = QtGui.QLabel(text[self.i], self) self.grid.addWidget(label, self.i, 0) self.i += 1 def main(): app = QtGui.QApplication(sys.argv) gui = Example() sys.exit(app.exec()) if __name__ == "__main__": main()
Отредактировано MetalHead (Авг. 9, 2014 10:03:29)
Офлайн
#!/usr/bin/env python3 from PyQt4 import QtGui import sys class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): self.text = ["first", "second", "three", "fourth", "fifth", "sixth"] self.ti = 0 self.grid = QtGui.QGridLayout() self.gi = 0 button = QtGui.QPushButton("Generate text", self) #button.move(125, 200) button.clicked.connect(self.generateText) self.grid.addWidget(button, 0, 0) self.grid.addWidget(QtGui.QLabel(''), 1, 0) self.gi += 2 self.setLayout(self.grid) self.setWindowTitle("Text Generator") self.setGeometry(300, 300, 350, 250) self.show() def generateText(self, event): text, ti = self.text, self.ti if ti < len(text): label = QtGui.QLabel(text[ti], self) self.grid.addWidget(label, self.gi, 0) self.ti += 1 self.gi += 1 def main(): app = QtGui.QApplication(sys.argv) gui = Example() sys.exit(app.exec_()) if __name__ == "__main__": main()
Офлайн
Спасибо, разобрался.
Офлайн