ich bekomme es nur nicht hin, dass beim drücken des Mathbuttons das Fenster wechselt.
Kann mir bitte irgendjemand helfen? Danke
Hier der Code(graphic):
Code: Alles auswählen
import random
import sys
from PyQt5.QtGui import QMovie
from PyQt5 import QtCore, QtGui, QtWidgets
class UiMainWindowMath(object):
def setUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(600, 386)
MainWindow.setMaximumSize(QtCore.QSize(600, 386))
MainWindow.setStyleSheet("background-image: url(School.jpg)")
MainWindow.setInputMethodHints(QtCore.Qt.ImhNoTextHandles)
self.operation = ''
self.level = 1
self.answer = 0
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.check = QtWidgets.QPushButton(self.centralwidget)
self.check.setGeometry(QtCore.QRect(280, 20, 111, 31))
self.check.setAcceptDrops(False)
self.check.setStyleSheet("font: 10pt \"Ravie\";")
self.check.setObjectName("check")
self.check.clicked.connect(self.checked)
self.entry = QtWidgets.QLineEdit(self.centralwidget)
self.entry.setGeometry(QtCore.QRect(420, 80, 141, 31))
self.entry.setStyleSheet("font: 25 16pt \"Bahnschrift Light Condensed\";")
self.entry.setText("")
self.entry.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.entry.setClearButtonEnabled(True)
self.entry.setObjectName("entry")
self.badd = QtWidgets.QToolButton(self.centralwidget)
self.badd.setGeometry(QtCore.QRect(260, 130, 121, 31))
self.badd.setStyleSheet("font: 10pt \"Papyrus\";")
self.badd.setObjectName("badd")
self.badd.clicked.connect(self.add)
self.bsub = QtWidgets.QToolButton(self.centralwidget)
self.bsub.setGeometry(QtCore.QRect(400, 130, 121, 31))
self.bsub.setStyleSheet("font: 10pt \"Papyrus\";")
self.bsub.setObjectName("bsub")
self.bsub.clicked.connect(self.subtract)
self.bmul = QtWidgets.QToolButton(self.centralwidget)
self.bmul.setGeometry(QtCore.QRect(260, 170, 121, 31))
self.bmul.setStyleSheet("font: 10pt \"Papyrus\";")
self.bmul.setObjectName("bmul")
self.bmul.clicked.connect(self.multiply)
self.bdiv = QtWidgets.QToolButton(self.centralwidget)
self.bdiv.setGeometry(QtCore.QRect(400, 170, 121, 31))
self.bdiv.setStyleSheet("font: 10pt \"Papyrus\";")
self.bdiv.setObjectName("bdiv")
self.bdiv.clicked.connect(self.divide)
self.regler = QtWidgets.QSlider(self.centralwidget)
self.regler.setGeometry(QtCore.QRect(20, 80, 160, 22))
self.regler.setSliderPosition(10)
self.regler.setOrientation(QtCore.Qt.Horizontal)
self.regler.setObjectName("regler")
self.regler.valueChanged.connect(self.updateRange)
self.regler.setRange(1, 1000)
self.hard = QtWidgets.QLabel(self.centralwidget)
self.hard.setGeometry(QtCore.QRect(130, 60, 47, 13))
self.hard.setObjectName("hard")
self.easy = QtWidgets.QLabel(self.centralwidget)
self.easy.setGeometry(QtCore.QRect(10, 60, 47, 13))
self.easy.setObjectName("easy")
self.task = QtWidgets.QGroupBox(self.centralwidget)
self.task.setGeometry(QtCore.QRect(400, 10, 171, 61))
self.task.setObjectName("task")
self.tasklabel = QtWidgets.QLabel(self.task)
self.tasklabel.setGeometry(QtCore.QRect(10, 20, 151, 31))
self.tasklabel.setStyleSheet("font: 75 8pt \"MS Shell Dlg 2\";")
self.tasklabel.setText("")
self.tasklabel.setObjectName("tasklabel")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 600, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Learn_Trainer"))
self.check.setText(_translate("MainWindow", "Check"))
self.entry.setPlaceholderText(_translate("MainWindow", "0"))
self.badd.setText(_translate("MainWindow", "Addition"))
self.bsub.setText(_translate("MainWindow", "Subtraction"))
self.bmul.setText(_translate("MainWindow", "Multiplication"))
self.bdiv.setText(_translate("MainWindow", "Dividation"))
self.hard.setText(_translate("MainWindow", "Hard"))
self.easy.setText(_translate("MainWindow", "Easy"))
self.task.setTitle(_translate("MainWindow", "Task"))
def level_task(self, level):
num1 = random.randint(0, level*10)
num2 = random.randint(level, level*10)
if self.operation == 'add':
self.answer = num1 + num2
self.tasklabel.setText(f'{num1} + {num2}')
elif self.operation == 'sub':
if num1 > num2:
self.answer = num1 - num2
self.tasklabel.setText(f'{num1} - {num2}')
if num1 < num2:
self.answer = num2 - num1
self.tasklabel.setText(f'{num2} - {num1}')
elif self.operation == 'mul':
self.answer = num1 * num2
self.tasklabel.setText(f'{num1} * {num2}')
elif self.operation == 'div':
run = False
while not run:
num1 = random.randint(1, level * 10)
num2 = random.randint(level, level * 10)
if num1 > num2 and num1 % num2 == 0:
self.answer = num1 / num2
self.tasklabel.setText(f'{num1} / {num2}')
run = True
elif num1 < num2 and num2 % num1 == 0:
self.answer = num2 / num1
self.tasklabel.setText(f'{num2} / {num1}')
run = True
else:
self.tasklabel.setText('Choose an operation')
def updateRange(self, value):
self.level = value
return self.level
def add(self):
self.operation = 'add'
self.level_task(self.level)
def subtract(self):
self.operation = 'sub'
self.level_task(self.level)
def multiply(self):
self.operation = 'mul'
self.level_task(self.level)
def divide(self):
self.operation = 'div'
self.level_task(self.level)
def checked(self):
try:
if self.answer == int(self.entry.text()):
self.tasklabel.setText('Correct')
self.movie = QMovie("winner.gif")
self.tasklabel.setMovie(self.movie)
self.movie.start()
else:
self.tasklabel.setText(f'Wrong, correct: {self.answer}')
except:
self.tasklabel.setText(f'Wrong, correct: {self.answer}')
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = UiMainWindowMath()
ui.setUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Code: Alles auswählen
from graphic import *
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(581, 388)
MainWindow.setStyleSheet("background-color: qlineargradient(spread:pad, x1:0.472, y1:0.494, x2:1, y2:1, stop:0 rgba(0, 47, 21, 255), stop:1 rgba(255, 255, 255, 255));")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(10, 10, 571, 331))
self.groupBox.setStyleSheet("background-image: url(:/newPrefix/front.jpg);\n"
"font: 22pt \"Old English Text MT\";\n"
"color: rgb(255, 255, 255);")
self.groupBox.setObjectName("groupBox")
self.commandLinkButton = QtWidgets.QCommandLinkButton(self.groupBox)
self.commandLinkButton.setGeometry(QtCore.QRect(110, 110, 111, 41))
self.commandLinkButton.setStyleSheet("background-image: url(:/newPrefix/yellow.jpg);\n"
"color: rgb(0, 0, 0);\n"
"font: 10pt \"Ravie\";\n"
"background-color: rgb(255, 247, 17);")
self.commandLinkButton.setObjectName("commandLinkButton")
self.commandLinkButton.clicked.connect(self.english)
self.line = QtWidgets.QFrame(self.groupBox)
self.line.setGeometry(QtCore.QRect(250, 100, 3, 61))
self.line.setStyleSheet("background-color: rgb(8, 8, 8);")
self.line.setFrameShape(QtWidgets.QFrame.VLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.commandLinkButton_2 = QtWidgets.QCommandLinkButton(self.groupBox)
self.commandLinkButton_2.setGeometry(QtCore.QRect(290, 110, 91, 41))
self.commandLinkButton_2.setStyleSheet("font: 10pt \"Ravie\";\n"
"color: rgb(7, 7, 7);\n"
"background-image: url(:/newPrefix/blue.png);\n"
"background-color: rgb(0, 0, 255);")
self.commandLinkButton_2.setObjectName("commandLinkButton_2")
self.commandLinkButton_2.clicked.connect(self.math)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 581, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.groupBox.setTitle(_translate("MainWindow", "STDUY"))
self.commandLinkButton.setText(_translate("MainWindow", "English"))
self.commandLinkButton_2.setText(_translate("MainWindow", "Math"))
def math(self):
MainWindow = QtWidgets.QMainWindow()
self.mwindow = UiMainWindowMath()
self.mwindow.setUi(MainWindow)
self.mwindow.show()
def english(self):
pass
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
PPS: Danke für alle antworten