PYQT5 Programm beenden

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Hallo Leute,
kuze Frage:

Ich möchte ein PYQT5-Fenster erzeugen und im closeEvent es so machen, dass sich das PYQT5-Fenster schließt und ein Tkinter-Fenster öffnet.
Das mit dem closeEvent weiß ich wie es geht, nur mit dem Tkinter fenster nicht.
wäre cool, wenn einer wüßte wie es geht. :-)
Benutzeravatar
sparrow
User
Beiträge: 4165
Registriert: Freitag 17. April 2009, 10:28

Kurze Antwort: Ich würde in einem Programm auf keinen Fall zwei GUI-Framworks kreuzen.
Zuletzt geändert von sparrow am Sonntag 28. November 2021, 18:11, insgesamt 1-mal geändert.
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Und wenn doch?
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Oder auch: Wenn ich ein Pyqt5-Fenster schließe, dass sich ein anderes Pyqt5-Fenster öffnet?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn Du weißt, wie man eine Fenster öffnet, dann kannst Du doch auch zwei Fenster öffnen.
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Ja, aber das erste soll sich schließen
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Ich dachte, das mit dem Schließen hättest Du schon.
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Ja, aber dann öffnet sich das andere fenster nicht oder das erste wartet bis das zweite geschlossen ist.
Benutzeravatar
sparrow
User
Beiträge: 4165
Registriert: Freitag 17. April 2009, 10:28

Da musst du wohl mal zegien, was du da tust.
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Kommt die Tage...
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Code kommt in den nächsten 5-10 min.

Nochmal anders formuliert: Ich möchte, dass nachdem man das PYQT-Fenster geschlossen hat, sich nicht das Programm an sich auch beendet, sondern, dass auch noch anderer Code ausgeführt wird.
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Code: Alles auswählen

import tkinter

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox
import tkinter as tk
from time import sleep


class Ui_MainWindow(object):
    def __init__(self):
        self.msgQuestion = QMessageBox()
        self.msgQuestion.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
        self.msgQuestion.setIcon(QMessageBox.Question)
        self.msgQuestion.setText(
            "Möchtest du zurück ins Hauptmenü?\n\nAchtung: \nDie bisherigen Einstellungen werden nicht gespeichert!")
        self.msgQuestion.setDefaultButton(QMessageBox.No)
        self.msgQuestion.buttonClicked.connect(self.msgButton)
        self.msgQuestion.setWindowTitle("Quiz maker ||| Verlassen?")

    def msgButton(self, i):
        if i.text() == '&Yes':
            print("Zurück zum Hauptmenü")

            app2 = QtWidgets.QApplication(sys.argv)
            app.exit()
            MainWindow2 = QtWidgets.QMainWindow()
            ui2 = Ui_MainWindow()
            ui2.setupUi(MainWindow)
            MainWindow2.show()
            print("bye1")
            sys.exit(app2.exec_())

        else:
            print("Ich bleibe hier\n \n pass")
            pass

    def closeEvent(self, event):
        event.ignore()
        self.msgQuestion.show()

    def setupUi(self, MainWindow):
        MainWindow.closeEvent = self.closeEvent
        MainWindow.setObjectName("MainWindow")
        MainWindow.setWindowModality(QtCore.Qt.NonModal)
        MainWindow.resize(700, 700)
        MainWindow.setMinimumSize(QtCore.QSize(700, 700))
        MainWindow.setMaximumSize(QtCore.QSize(700, 700))
        MainWindow.setSizeIncrement(QtCore.QSize(0, 0))
        MainWindow.setBaseSize(QtCore.QSize(0, 0))
        MainWindow.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        MainWindow.setMouseTracking(False)
        MainWindow.setFocusPolicy(QtCore.Qt.WheelFocus)
        MainWindow.setWindowTitle("Quiz maker ||| Erstellen eines neuen Quiz ||| Konfiguration")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("quiz.ico"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        MainWindow.setAutoFillBackground(False)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox_2.setGeometry(QtCore.QRect(10, 320, 681, 331))
        self.groupBox_2.setMinimumSize(QtCore.QSize(560, 100))
        self.groupBox_2.setMaximumSize(QtCore.QSize(700, 700))
        self.groupBox_2.setSizeIncrement(QtCore.QSize(0, 0))
        self.groupBox_2.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\"")
        self.groupBox_2.setInputMethodHints(QtCore.Qt.ImhNone)
        self.groupBox_2.setObjectName("groupBox_2")
        self.label_13 = QtWidgets.QLabel(self.groupBox_2)
        self.label_13.setGeometry(QtCore.QRect(370, 30, 281, 291))
        self.label_13.setText("")
        self.label_13.setPixmap(QtGui.QPixmap("2.png"))
        self.label_13.setScaledContents(True)
        self.label_13.setObjectName("label_13")
        self.label_14 = QtWidgets.QLabel(self.groupBox_2)
        self.label_14.setGeometry(QtCore.QRect(30, 30, 281, 291))
        self.label_14.setText("")
        self.label_14.setPixmap(QtGui.QPixmap("1.png"))
        self.label_14.setScaledContents(True)
        self.label_14.setObjectName("label_14")
        self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox.setGeometry(QtCore.QRect(10, 10, 681, 311))
        self.groupBox.setMinimumSize(QtCore.QSize(550, 300))
        self.groupBox.setMaximumSize(QtCore.QSize(700, 350))
        self.groupBox.setSizeIncrement(QtCore.QSize(0, 0))
        self.groupBox.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\"")
        self.groupBox.setObjectName("groupBox")
        self.splitter = QtWidgets.QSplitter(self.groupBox)
        self.splitter.setGeometry(QtCore.QRect(20, 30, 651, 271))
        self.splitter.setOrientation(QtCore.Qt.Horizontal)
        self.splitter.setObjectName("splitter")
        self.layoutWidget = QtWidgets.QWidget(self.splitter)
        self.layoutWidget.setObjectName("layoutWidget")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget)
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.label = QtWidgets.QLabel(self.layoutWidget)
        self.label.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label.setObjectName("label")
        self.verticalLayout_3.addWidget(self.label)
        self.label_2 = QtWidgets.QLabel(self.layoutWidget)
        self.label_2.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_2.setObjectName("label_2")
        self.verticalLayout_3.addWidget(self.label_2)
        self.label_9 = QtWidgets.QLabel(self.layoutWidget)
        self.label_9.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_9.setObjectName("label_9")
        self.verticalLayout_3.addWidget(self.label_9)
        self.label_6 = QtWidgets.QLabel(self.layoutWidget)
        self.label_6.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_6.setObjectName("label_6")
        self.verticalLayout_3.addWidget(self.label_6)
        self.label_7 = QtWidgets.QLabel(self.layoutWidget)
        self.label_7.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_7.setObjectName("label_7")
        self.verticalLayout_3.addWidget(self.label_7)
        self.label_8 = QtWidgets.QLabel(self.layoutWidget)
        self.label_8.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_8.setObjectName("label_8")
        self.verticalLayout_3.addWidget(self.label_8)
        self.label_5 = QtWidgets.QLabel(self.layoutWidget)
        self.label_5.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_5.setObjectName("label_5")
        self.verticalLayout_3.addWidget(self.label_5)
        self.layoutWidget1 = QtWidgets.QWidget(self.splitter)
        self.layoutWidget1.setObjectName("layoutWidget1")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget1)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.lineEdit = QtWidgets.QLineEdit(self.layoutWidget1)
        self.lineEdit.setObjectName("lineEdit")
        self.verticalLayout_2.addWidget(self.lineEdit)
        self.comboBox = QtWidgets.QComboBox(self.layoutWidget1)
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.verticalLayout_2.addWidget(self.comboBox)
        self.comboBox_2 = QtWidgets.QComboBox(self.layoutWidget1)
        self.comboBox_2.setObjectName("comboBox_2")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.verticalLayout_2.addWidget(self.comboBox_2)
        self.comboBox_3 = QtWidgets.QComboBox(self.layoutWidget1)
        self.comboBox_3.setObjectName("comboBox_3")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        icon = QtGui.QIcon.fromTheme("farbe")
        self.comboBox_3.addItem(icon, "")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.verticalLayout_2.addWidget(self.comboBox_3)
        self.lineEdit_4 = QtWidgets.QLineEdit(self.layoutWidget1)
        self.lineEdit_4.setObjectName("lineEdit_4")
        self.verticalLayout_2.addWidget(self.lineEdit_4)
        self.lineEdit_3 = QtWidgets.QLineEdit(self.layoutWidget1)
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.verticalLayout_2.addWidget(self.lineEdit_3)
        self.lineEdit_2 = QtWidgets.QLineEdit(self.layoutWidget1)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.verticalLayout_2.addWidget(self.lineEdit_2)
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(10, 660, 671, 30))
        self.pushButton.setStyleSheet("font: 20pt \"Microsoft YaHei UI\";")
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        self.groupBox_2.setTitle(_translate("MainWindow", "Beispielbilder"))
        self.groupBox.setTitle(_translate("MainWindow", "Einstellungen"))
        self.label.setText(_translate("MainWindow",
                                      "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Name des neuen Quiz:</span></p></body></html>"))
        self.label_2.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Hintergrundfarbe des Quiz:</span></p></body></html>"))
        self.label_9.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Hintergrundfarbe der Fragen:</span></p></body></html>"))
        self.label_6.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Hintergrundfarbe der Antworten:</span></p></body></html>"))
        self.label_7.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Text 1 am Ende:</span></p></body></html>"))
        self.label_8.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Text 2 am Ende:</span></p></body></html>"))
        self.label_5.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Autor:</span></p></body></html>"))
        self.comboBox.setItemText(0, _translate("MainWindow", "Grau"))
        self.comboBox.setItemText(1, _translate("MainWindow", "Blau"))
        self.comboBox.setItemText(2, _translate("MainWindow", "Hell Blau"))
        self.comboBox.setItemText(3, _translate("MainWindow", "Dunkel Blau"))
        self.comboBox.setItemText(4, _translate("MainWindow", "Grün"))
        self.comboBox.setItemText(5, _translate("MainWindow", "Hell Grün"))
        self.comboBox.setItemText(6, _translate("MainWindow", "Dunkel Grün"))
        self.comboBox.setItemText(7, _translate("MainWindow", "Rot"))
        self.comboBox.setItemText(8, _translate("MainWindow", "Gelb"))
        self.comboBox.setItemText(9, _translate("MainWindow", "Weiß"))
        self.comboBox.setItemText(10, _translate("MainWindow", "Schwarz"))
        self.comboBox_2.setItemText(0, _translate("MainWindow", "Dunkel Blau"))
        self.comboBox_2.setItemText(1, _translate("MainWindow", "Hell Blau"))
        self.comboBox_2.setItemText(2, _translate("MainWindow", "Blau"))
        self.comboBox_2.setItemText(3, _translate("MainWindow", "Grau"))
        self.comboBox_2.setItemText(4, _translate("MainWindow", "Grün"))
        self.comboBox_2.setItemText(5, _translate("MainWindow", "Hell Grün"))
        self.comboBox_2.setItemText(6, _translate("MainWindow", "Dunkel Grün"))
        self.comboBox_2.setItemText(7, _translate("MainWindow", "Rot"))
        self.comboBox_2.setItemText(8, _translate("MainWindow", "Gelb"))
        self.comboBox_2.setItemText(9, _translate("MainWindow", "Weiß"))
        self.comboBox_2.setItemText(10, _translate("MainWindow", "Schwarz"))
        self.comboBox_3.setItemText(0, _translate("MainWindow", "Blau"))
        self.comboBox_3.setItemText(1, _translate("MainWindow", "Hell Blau"))
        self.comboBox_3.setItemText(2, _translate("MainWindow", "Dunkel Blau"))
        self.comboBox_3.setItemText(3, _translate("MainWindow", "Grau"))
        self.comboBox_3.setItemText(4, _translate("MainWindow", "Grün"))
        self.comboBox_3.setItemText(5, _translate("MainWindow", "Hell Grün"))
        self.comboBox_3.setItemText(6, _translate("MainWindow", "Dunkel Grün"))
        self.comboBox_3.setItemText(7, _translate("MainWindow", "Rot"))
        self.comboBox_3.setItemText(8, _translate("MainWindow", "Gelb"))
        self.comboBox_3.setItemText(9, _translate("MainWindow", "Weiß"))
        self.comboBox_3.setItemText(10, _translate("MainWindow", "Schwarz"))
        self.pushButton.setToolTip(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))
        self.pushButton.setWhatsThis(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))
        self.pushButton.setText(_translate("MainWindow", "OK"))

class Ui_MainWindow2(object):
    def __init__(self):
        self.msgQuestion = QMessageBox()
        self.msgQuestion.setStandardButtons(QMessageBox.No)
        self.msgQuestion.setIcon(QMessageBox.Question)
        self.msgQuestion.setText(
            "Möchtest du zurück ins Hauptmenü?\n\nAchtung: \nDie bisherigen Einstellungen werden nicht gespeichert!")
        self.msgQuestion.setDefaultButton(QMessageBox.No)
        self.msgQuestion.buttonClicked.connect(self.msgButton)
        self.msgQuestion.setWindowTitle("Quiz maker ||| Verlassen?")

    def msgButton(self, i):
        if i.text() == '&Yes':
            print("Zurück zum Hauptmenü")

            a = hi()
            a.println()

        else:
            print("Ich bleibe hier\n \n pass")
            pass

    def closeEvent(self, event):
        event.ignore()
        self.msgQuestion.show()

    def setupUi(self, MainWindow):
        MainWindow.closeEvent = self.closeEvent
        MainWindow.setObjectName("MainWindow")
        MainWindow.setWindowModality(QtCore.Qt.NonModal)
        MainWindow.resize(700, 700)
        MainWindow.setMinimumSize(QtCore.QSize(700, 700))
        MainWindow.setMaximumSize(QtCore.QSize(700, 700))
        MainWindow.setSizeIncrement(QtCore.QSize(0, 0))
        MainWindow.setBaseSize(QtCore.QSize(0, 0))
        MainWindow.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        MainWindow.setMouseTracking(False)
        MainWindow.setFocusPolicy(QtCore.Qt.WheelFocus)
        MainWindow.setWindowTitle("Quiz maker ||| Erstellen eines neuen Quiz ||| Konfiguration")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("quiz.ico"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        MainWindow.setAutoFillBackground(False)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox_2.setGeometry(QtCore.QRect(10, 320, 681, 331))
        self.groupBox_2.setMinimumSize(QtCore.QSize(560, 100))
        self.groupBox_2.setMaximumSize(QtCore.QSize(700, 700))
        self.groupBox_2.setSizeIncrement(QtCore.QSize(0, 0))
        self.groupBox_2.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\"")
        self.groupBox_2.setInputMethodHints(QtCore.Qt.ImhNone)
        self.groupBox_2.setObjectName("groupBox_2")
        self.label_13 = QtWidgets.QLabel(self.groupBox_2)
        self.label_13.setGeometry(QtCore.QRect(370, 30, 281, 291))
        self.label_13.setText("")
        self.label_13.setPixmap(QtGui.QPixmap("2.png"))
        self.label_13.setScaledContents(True)
        self.label_13.setObjectName("label_13")
        self.label_14 = QtWidgets.QLabel(self.groupBox_2)
        self.label_14.setGeometry(QtCore.QRect(30, 30, 281, 291))
        self.label_14.setText("")
        self.label_14.setPixmap(QtGui.QPixmap("1.png"))
        self.label_14.setScaledContents(True)
        self.label_14.setObjectName("label_14")
        self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox.setGeometry(QtCore.QRect(10, 10, 681, 311))
        self.groupBox.setMinimumSize(QtCore.QSize(550, 300))
        self.groupBox.setMaximumSize(QtCore.QSize(700, 350))
        self.groupBox.setSizeIncrement(QtCore.QSize(0, 0))
        self.groupBox.setStyleSheet("font: 75 14pt \"MS Shell Dlg 2\"")
        self.groupBox.setObjectName("groupBox")
        self.splitter = QtWidgets.QSplitter(self.groupBox)
        self.splitter.setGeometry(QtCore.QRect(20, 30, 651, 271))
        self.splitter.setOrientation(QtCore.Qt.Horizontal)
        self.splitter.setObjectName("splitter")
        self.layoutWidget = QtWidgets.QWidget(self.splitter)
        self.layoutWidget.setObjectName("layoutWidget")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget)
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.label = QtWidgets.QLabel(self.layoutWidget)
        self.label.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label.setObjectName("label")
        self.verticalLayout_3.addWidget(self.label)
        self.label_2 = QtWidgets.QLabel(self.layoutWidget)
        self.label_2.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_2.setObjectName("label_2")
        self.verticalLayout_3.addWidget(self.label_2)
        self.label_9 = QtWidgets.QLabel(self.layoutWidget)
        self.label_9.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_9.setObjectName("label_9")
        self.verticalLayout_3.addWidget(self.label_9)
        self.label_6 = QtWidgets.QLabel(self.layoutWidget)
        self.label_6.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_6.setObjectName("label_6")
        self.verticalLayout_3.addWidget(self.label_6)
        self.label_7 = QtWidgets.QLabel(self.layoutWidget)
        self.label_7.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_7.setObjectName("label_7")
        self.verticalLayout_3.addWidget(self.label_7)
        self.label_8 = QtWidgets.QLabel(self.layoutWidget)
        self.label_8.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_8.setObjectName("label_8")
        self.verticalLayout_3.addWidget(self.label_8)
        self.label_5 = QtWidgets.QLabel(self.layoutWidget)
        self.label_5.setStyleSheet("font: 8pt \"MS Shell Dlg 2\";")
        self.label_5.setObjectName("label_5")
        self.verticalLayout_3.addWidget(self.label_5)
        self.layoutWidget1 = QtWidgets.QWidget(self.splitter)
        self.layoutWidget1.setObjectName("layoutWidget1")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget1)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.lineEdit = QtWidgets.QLineEdit(self.layoutWidget1)
        self.lineEdit.setObjectName("lineEdit")
        self.verticalLayout_2.addWidget(self.lineEdit)
        self.comboBox = QtWidgets.QComboBox(self.layoutWidget1)
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.verticalLayout_2.addWidget(self.comboBox)
        self.comboBox_2 = QtWidgets.QComboBox(self.layoutWidget1)
        self.comboBox_2.setObjectName("comboBox_2")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.verticalLayout_2.addWidget(self.comboBox_2)
        self.comboBox_3 = QtWidgets.QComboBox(self.layoutWidget1)
        self.comboBox_3.setObjectName("comboBox_3")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        icon = QtGui.QIcon.fromTheme("farbe")
        self.comboBox_3.addItem(icon, "")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.comboBox_3.addItem("")
        self.verticalLayout_2.addWidget(self.comboBox_3)
        self.lineEdit_4 = QtWidgets.QLineEdit(self.layoutWidget1)
        self.lineEdit_4.setObjectName("lineEdit_4")
        self.verticalLayout_2.addWidget(self.lineEdit_4)
        self.lineEdit_3 = QtWidgets.QLineEdit(self.layoutWidget1)
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.verticalLayout_2.addWidget(self.lineEdit_3)
        self.lineEdit_2 = QtWidgets.QLineEdit(self.layoutWidget1)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.verticalLayout_2.addWidget(self.lineEdit_2)
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(10, 660, 671, 30))
        self.pushButton.setStyleSheet("font: 20pt \"Microsoft YaHei UI\";")
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        self.groupBox_2.setTitle(_translate("MainWindow", "Beispielbilder"))
        self.groupBox.setTitle(_translate("MainWindow", "Einstellungen"))
        self.label.setText(_translate("MainWindow",
                                      "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Name des neuen Quiz:</span></p></body></html>"))
        self.label_2.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Hintergrundfarbe des Quiz:</span></p></body></html>"))
        self.label_9.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Hintergrundfarbe der Fragen:</span></p></body></html>"))
        self.label_6.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Hintergrundfarbe der Antworten:</span></p></body></html>"))
        self.label_7.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Text 1 am Ende:</span></p></body></html>"))
        self.label_8.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Text 2 am Ende:</span></p></body></html>"))
        self.label_5.setText(_translate("MainWindow",
                                        "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; text-decoration: underline; color:#000000;\">Autor:</span></p></body></html>"))
        self.comboBox.setItemText(0, _translate("MainWindow", "Grau"))
        self.comboBox.setItemText(1, _translate("MainWindow", "Blau"))
        self.comboBox.setItemText(2, _translate("MainWindow", "Hell Blau"))
        self.comboBox.setItemText(3, _translate("MainWindow", "Dunkel Blau"))
        self.comboBox.setItemText(4, _translate("MainWindow", "Grün"))
        self.comboBox.setItemText(5, _translate("MainWindow", "Hell Grün"))
        self.comboBox.setItemText(6, _translate("MainWindow", "Dunkel Grün"))
        self.comboBox.setItemText(7, _translate("MainWindow", "Rot"))
        self.comboBox.setItemText(8, _translate("MainWindow", "Gelb"))
        self.comboBox.setItemText(9, _translate("MainWindow", "Weiß"))
        self.comboBox.setItemText(10, _translate("MainWindow", "Schwarz"))
        self.comboBox_2.setItemText(0, _translate("MainWindow", "Dunkel Blau"))
        self.comboBox_2.setItemText(1, _translate("MainWindow", "Hell Blau"))
        self.comboBox_2.setItemText(2, _translate("MainWindow", "Blau"))
        self.comboBox_2.setItemText(3, _translate("MainWindow", "Grau"))
        self.comboBox_2.setItemText(4, _translate("MainWindow", "Grün"))
        self.comboBox_2.setItemText(5, _translate("MainWindow", "Hell Grün"))
        self.comboBox_2.setItemText(6, _translate("MainWindow", "Dunkel Grün"))
        self.comboBox_2.setItemText(7, _translate("MainWindow", "Rot"))
        self.comboBox_2.setItemText(8, _translate("MainWindow", "Gelb"))
        self.comboBox_2.setItemText(9, _translate("MainWindow", "Weiß"))
        self.comboBox_2.setItemText(10, _translate("MainWindow", "Schwarz"))
        self.comboBox_3.setItemText(0, _translate("MainWindow", "Blau"))
        self.comboBox_3.setItemText(1, _translate("MainWindow", "Hell Blau"))
        self.comboBox_3.setItemText(2, _translate("MainWindow", "Dunkel Blau"))
        self.comboBox_3.setItemText(3, _translate("MainWindow", "Grau"))
        self.comboBox_3.setItemText(4, _translate("MainWindow", "Grün"))
        self.comboBox_3.setItemText(5, _translate("MainWindow", "Hell Grün"))
        self.comboBox_3.setItemText(6, _translate("MainWindow", "Dunkel Grün"))
        self.comboBox_3.setItemText(7, _translate("MainWindow", "Rot"))
        self.comboBox_3.setItemText(8, _translate("MainWindow", "Gelb"))
        self.comboBox_3.setItemText(9, _translate("MainWindow", "Weiß"))
        self.comboBox_3.setItemText(10, _translate("MainWindow", "Schwarz"))
        self.pushButton.setToolTip(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))
        self.pushButton.setWhatsThis(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))
        self.pushButton.setText(_translate("MainWindow", "OK"))


class hi:
    def println(self):
        root = tkinter.Tk()
        root.mainloop()


if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)

    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    print("bye") # Hier soll weiterer code ausgeführt werden, nachdem das Fenster geschlossen wurde
    sys.exit(app.exec_())
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Sorry falls der Code nicht so super strukturiert ist, es ist noch für mich zum Testen.

Und sorry, dass das so lange gedauert hat, ich hatte viele Klassenarbeiten und daher keine Zeit. :-(
Benutzeravatar
sparrow
User
Beiträge: 4165
Registriert: Freitag 17. April 2009, 10:28

Wie ich dir bereits oben geschrieben habe: Man mischt nicht zwei GUI-Framworks in einem Programn. Das liegt daran, dass beide Frameworks ihren jeweiligen Mainloop brauchen um die Oberfläche zu zeichne.
Falls es dir jetzt wieder in den Fingern juckt "und wenn doch" zu schreiben: Nein.

Entscheid dich für Tkinter oder PyQt.

Die Sache mit dem Mainloop hast du auch noch nicht auf dem Schirm, denn die Codezeile, die du kommentiert hast wird ja ausgeführt. Und zwar _bevor_ das Fenster angezeigt wird.

Bei GUI-Programmierung wird der Code nicht mehr sequentiell abgearbeitet. Deine Oberfläche wird überhaupt erst angezeigt, wenn app.exec_() aufgerufen wird. Damit wird die Endlosschleife (Mainloop) gestartet, der dafür sorgt, dass die Oberfläche gezeichnet wird. Aber diesem Moment musst du entsprechend auf Events reagieren.
Das Stichwort zum Suchen, wenn es bei PyQt bleibt: Signal.
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Ok, danke.

Ich werde mich mal mit verschiedenen Sachen noch ausprobieren.

Kurze Frage: Kann ich dieses QT Fenster, was ich mit oberen Code erstelle, auch (exakt) mit Tkinter nachstellen? (MIt Groupbox und so)
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Warum? Lass doch einfach tkinter raus.
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Ja!Nein!Jein?

Ich komm mit tkinter sehr viel besser klar als mit QT und ja.

Der code ist nur, vielleicht 5% von dem Grafischen insgesamt und ich weiß nicht so wie ich das so schön (und schnell) mit Qt hin bekomme. :-(
Benutzeravatar
sparrow
User
Beiträge: 4165
Registriert: Freitag 17. April 2009, 10:28

Mit dem qdesigner.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wie jetzt. Du hast etwas schönes mit Qt gebaut, weißt nicht, wie du es mit tkinter hinbekommst, aber das ist dann doch irgendwie besser? Finde ich unlogisch.
timm4444
User
Beiträge: 51
Registriert: Samstag 1. August 2020, 14:11

Ja, ja aber ich arbeite ja auch mit designer aber ...

ok ich probieres es mal aus :-| (mir gehen die Argumente aus)

Letzte Frage: Ich habe 2 qt fenster und ich möchte beide NACHEINANDER anzeigen lassen, wie mache ich das?
Zuletzt geändert von timm4444 am Mittwoch 8. Dezember 2021, 20:43, insgesamt 1-mal geändert.
Antworten