51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
|
from PySide import QtGui, QtCore
|
||
|
|
||
|
#class QuestionWindow(QtGui.QWidget):
|
||
|
class QuestionWindow(QtGui.QDialog):
|
||
|
def __init__(self, section, question, parent=None):
|
||
|
super(QuestionWindow, self).__init__(parent)
|
||
|
|
||
|
self.section = section
|
||
|
self.question = question
|
||
|
self.results = []
|
||
|
|
||
|
self._setupGui()
|
||
|
self.setWindowTitle("Seopardy")
|
||
|
|
||
|
def get_results(self):
|
||
|
return self.results
|
||
|
|
||
|
def _mkQuestionLabel(self, text):
|
||
|
question = QtGui.QLabel(text, alignment=QtCore.Qt.AlignCenter)
|
||
|
question.setWordWrap(True)
|
||
|
question.setStyleSheet("QLabel { font-size: 40px; }")
|
||
|
|
||
|
return question
|
||
|
|
||
|
def _setupGui(self):
|
||
|
self.layout = QtGui.QVBoxLayout()
|
||
|
|
||
|
seclabel = QtGui.QLabel(self.section)
|
||
|
seclabel.setStyleSheet("QLabel { font-size: 30px; }")
|
||
|
self.layout.addWidget(seclabel, alignment=QtCore.Qt.AlignCenter)
|
||
|
self.layout.addStretch()
|
||
|
|
||
|
qlabel = None
|
||
|
if self.question["Type"] == "Text":
|
||
|
qlabel = self.mkQuestionLabel(self.question["Question"])
|
||
|
elif self.question["Type"] == "Music":
|
||
|
qlabel = self.mkQuestionLabel("Listen...")
|
||
|
elif self.question["Type"] == "Image":
|
||
|
qlabel = QtGui.QLabel()
|
||
|
pixmap = QtGui.QPixmap()
|
||
|
pixmap.loadFromData(open(self.question["Question"]).read())
|
||
|
qlabel.setPixmap(pixmap)
|
||
|
else:
|
||
|
raise ValueError("%s is an unknown type for section %s question name %s" % (self.question["Type"], self.section, self.question["Name"]))
|
||
|
|
||
|
self.layout.addWidget(qlabel, alignment=QtCore.Qt.AlignCenter)
|
||
|
self.layout.addStretch()
|
||
|
|
||
|
self.setLayout(self.layout)
|
||
|
|