Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt4. Сигнал один раз срабатывает [RSS Feed]

#1 Авг. 9, 2014 10:02:36

MetalHead
От: Ленгер
Зарегистрирован: 2013-12-17
Сообщения: 88
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQt4. Сигнал один раз срабатывает

Добрый день, товарищи! Собственно в процессе изучения столкнулся с такой проблемой, при клике на кнопку(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)

Офлайн

#2 Авг. 9, 2014 14:06:57

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9885
Репутация: +  853  -
Профиль   Отправить e-mail  

PyQt4. Сигнал один раз срабатывает

#!/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()



Офлайн

#3 Авг. 9, 2014 16:00:21

MetalHead
От: Ленгер
Зарегистрирован: 2013-12-17
Сообщения: 88
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQt4. Сигнал один раз срабатывает

Спасибо, разобрался.

Офлайн

  • Начало
  • » GUI
  • » PyQt4. Сигнал один раз срабатывает[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version