How do I show a Test_Question (String) per page?? (PyQt/Python) -


i creating pyqt application creates , sets tests user. however, when setting test questions wanted 1 question viewed per page. example, if user start test, question appear. once have answered question, click button 'proceed' presents next page showing 2nd question , on... however, in case, unaware how many questions there in each test, number of pages vary. using switching layouts rather switch layouts opposed open new windows means have create class per question , because questions per test vary, unsure how present questions????

i not going copy out entire application code provide basic example below:

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)  class question1(qtgui.qwidget):     def __init__(self, parent=none):         super(question1, 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)  class question2(qtgui.qwidget):     def __init__(self, parent=none):         super(question2, self).__init__(parent)         question = qtgui.qlabel('what 45+10?')         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) #.... if __name__ == '__main__':     user = ''     app = qtgui.qapplication([])     window = starttest()     window.showfullscreen()     app.exec_() 

just have single question class can parameterized. example code in question, simple passing label text argument, since thing different:

class question(qtgui.qwidget):     def __init__(self, label, parent=none):         super(question, self).__init__(parent)         question = qtgui.qlabel(label)         ...  question1 = question('what 5+5?', self) question2 = question('what 45+10?', self) 

if question types have different structure, create subclasses each type:

class complexquestion(question):     def __init__(self, label, parent=none):         super(complexquestion, self).__init__(parent)         # additional initialization... 

or if wanted avoid subclassing, add methods question class enabled/disabled features.


Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -