How do i use a While/For loop to create classes?? (Python/PyQt) -
i have created code create multiple classes different class names (i.e. question1, question2 etc.)
import sys pyqt4 import qtcore, qtgui class starttest(qtgui.qmainwindow): def __init__(self, parent=none): super(starttest, self).__init__(parent) self.central_widget = qtgui.qstackedwidget() self.setcentralwidget(self.central_widget) question1 = question1(self) self.central_widget.addwidget(question1) self.central_widget.setcurrentwidget(question1) question1.proceed.clicked.connect(self.question2) def question2(self): question2 = question2(self) self.central_widget.addwidget(question2) self.central_widget.setcurrentwidget(question2) = 0 while i<2: class question+i(qtgui.qwidget): def __init__(self, parent=none): super(question+i, self).__init__(parent) question = qtgui.qlabel('what 5+5?') self.proceed = qtgui.qpushbutton("proceed") self.answer = qtgui.qlineedit(self) layout = qtgui.qformlayout() layout.addrow(question, self.answer) layout2 = qtgui.qvboxlayout() layout2.addlayout(layout) layout2.addwidget(self.proceed) self.setlayout(layout2) print('question'+i) if __name__ == '__main__': user = '' app = qtgui.qapplication([]) window = starttest() window.showfullscreen() app.exec_()
however when write:
i = 0 while i<2: class question+i(qtgui.qwidget):
i obtain syntax error on question+i
part error, undertandable. how overcome whilst still creating multiple classes different class names???
see this related question answers on how set class names dynamically.
you need implement factory method. might this:
def factory(num) : baseclass = qtgui.qwidget class newclass(baseclass): pass newclass.__name__ = "factory_%s%d" % (baseclass.__name__, num) return newclass
Comments
Post a Comment