Как открыть окно по нажатию на кнопку?

Я хотел, чтобы по нажатию на кнопку открывалось второе окно.
Первые два кода сделаны в Qt Designer и импортированы в .py из .ui

Первый код - это основное меню.
Второй, это один из режимов.

Первый код:

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(750, 500)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMinimumSize(QtCore.QSize(750, 500))
        MainWindow.setMaximumSize(QtCore.QSize(750, 500))
        MainWindow.setStatusTip("")
        MainWindow.setWhatsThis("")
        MainWindow.setAccessibleName("")
        MainWindow.setAccessibleDescription("")
        MainWindow.setStyleSheet("QPushButton{\n"
"    width: 175;\n"
"    height: 100;\n"
"    border: none;\n"
"    background-color: gray;\n"
"}\n"
"QPushButton:hover{\n"
"    background-color: silver;\n"
"}")
        MainWindow.setTabShape(QtWidgets.QTabWidget.Rounded)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 751, 471))
        self.gridLayoutWidget.setObjectName("gridLayoutWidget")
        self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayout.setObjectName("gridLayout")
        self.MouseClicker = QtWidgets.QPushButton(self.gridLayoutWidget)
        self.MouseClicker.setEnabled(True)
        font = QtGui.QFont()
        font.setFamily("MS Reference Sans Serif")
        font.setPointSize(16)
        self.MouseClicker.setFont(font)
        self.MouseClicker.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.MouseClicker.setObjectName("MouseClicker")
        self.gridLayout.addWidget(self.MouseClicker, 5, 3, 1, 1)
        self.KeyboardClicker = QtWidgets.QPushButton(self.gridLayoutWidget)
        self.KeyboardClicker.setEnabled(True)
        font = QtGui.QFont()
        font.setFamily("MS Reference Sans Serif")
        font.setPointSize(16)
        self.KeyboardClicker.setFont(font)
        self.KeyboardClicker.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.KeyboardClicker.setObjectName("KeyboardClicker")
        self.gridLayout.addWidget(self.KeyboardClicker, 5, 1, 1, 1)
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem, 5, 6, 1, 1)
        self.MSGSpam = QtWidgets.QPushButton(self.gridLayoutWidget)
        self.MSGSpam.setEnabled(True)
        font = QtGui.QFont()
        font.setFamily("MS Reference Sans Serif")
        font.setPointSize(16)
        self.MSGSpam.setFont(font)
        self.MSGSpam.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.MSGSpam.setObjectName("MSGSpam")
        self.gridLayout.addWidget(self.MSGSpam, 5, 5, 1, 1)
        spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem1, 1, 3, 1, 1)
        spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem2, 5, 0, 1, 1)
        spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem3, 5, 4, 1, 1)
        spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem4, 2, 3, 1, 1)
        spacerItem5 = QtWidgets.QSpacerItem(20, 50, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem5, 4, 3, 1, 1)
        spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem6, 5, 2, 1, 1)
        spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem7, 6, 3, 1, 1)
        self.label = QtWidgets.QLabel(self.gridLayoutWidget)
        font = QtGui.QFont()
        font.setFamily("MS Reference Sans Serif")
        font.setPointSize(30)
        self.label.setFont(font)
        self.label.setTextFormat(QtCore.Qt.AutoText)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 3, 3, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 750, 26))
        self.menuBar.setObjectName("menuBar")
        self.menu = QtWidgets.QMenu(self.menuBar)
        self.menu.setObjectName("menu")
        self.menu_2 = QtWidgets.QMenu(self.menu)
        self.menu_2.setObjectName("menu_2")
        MainWindow.setMenuBar(self.menuBar)
        self.action_5 = QtWidgets.QAction(MainWindow)
        self.action_5.setObjectName("action_5")
        self.action_6 = QtWidgets.QAction(MainWindow)
        self.action_6.setObjectName("action_6")
        self.action_7 = QtWidgets.QAction(MainWindow)
        self.action_7.setObjectName("action_7")
        self.menu_2.addAction(self.action_5)
        self.menu_2.addAction(self.action_6)
        self.menu.addAction(self.menu_2.menuAction())
        self.menu.addAction(self.action_7)
        self.menuBar.addAction(self.menu.menuAction())

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

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MAClick"))
        self.MouseClicker.setText(_translate("MainWindow", "Мышка"))
        self.KeyboardClicker.setText(_translate("MainWindow", "Клавиатура"))
        self.MSGSpam.setText(_translate("MainWindow", "Спамер"))
        self.label.setText(_translate("MainWindow", "MAClick"))
        self.menu.setTitle(_translate("MainWindow", "Программа"))
        self.menu_2.setTitle(_translate("MainWindow", "Автор"))
        self.action_5.setText(_translate("MainWindow", "Поддежать"))
        self.action_5.setShortcut(_translate("MainWindow", "Shift+D"))
        self.action_6.setText(_translate("MainWindow", "Мой Дискорд"))
        self.action_6.setShortcut(_translate("MainWindow", "Shift+C"))
        self.action_7.setText(_translate("MainWindow", "Обновления"))
        self.action_7.setShortcut(_translate("MainWindow", "Shift+A"))

Второй код:

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(300, 130)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Ignored)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMinimumSize(QtCore.QSize(0, 0))
        MainWindow.setMaximumSize(QtCore.QSize(750, 500))
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(30, 10, 241, 51))
        self.pushButton.setStyleSheet("QPushButton{\n"
"    width: 175;\n"
"    height: 100;\n"
"    border: none;\n"
"    background-color: gray;\n"
"}\n"
"QPushButton:hover{\n"
"   background-color: silver;\n"
"}")
        self.pushButton.setObjectName("pushButton")
        self.WorkMode = QtWidgets.QComboBox(self.centralwidget)
        self.WorkMode.setGeometry(QtCore.QRect(170, 70, 101, 21))
        self.WorkMode.setObjectName("WorkMode")
        self.WorkMode.addItem("")
        self.WorkMode.addItem("")
        self.CPSInput = QtWidgets.QLineEdit(self.centralwidget)
        self.CPSInput.setGeometry(QtCore.QRect(30, 100, 241, 21))
        self.CPSInput.setAlignment(QtCore.Qt.AlignCenter)
        self.CPSInput.setDragEnabled(False)
        self.CPSInput.setReadOnly(False)
        self.CPSInput.setObjectName("CPSInput")
        self.ButtonIs = QtWidgets.QComboBox(self.centralwidget)
        self.ButtonIs.setGeometry(QtCore.QRect(30, 70, 101, 21))
        self.ButtonIs.setObjectName("ButtonIs")
        self.ButtonIs.addItem("")
        self.ButtonIs.addItem("")
        MainWindow.setCentralWidget(self.centralwidget)

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

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Текущий Тригер: none"))
        self.WorkMode.setItemText(0, _translate("MainWindow", "Auto"))
        self.WorkMode.setItemText(1, _translate("MainWindow", "NoAuto"))
        self.CPSInput.setText(_translate("MainWindow", "Предпочитаемый CPS (От 0.1 До 50)"))
        self.ButtonIs.setItemText(0, _translate("MainWindow", "Left"))
        self.ButtonIs.setItemText(1, _translate("MainWindow", "Right"))


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_())

Ответы (1 шт):

Автор решения: S. Nick

Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения.

q1323424.py

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *

from q1323424_2 import Ui_MainWindow as Ui_MainWindow_2


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(750, 500)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMinimumSize(QtCore.QSize(750, 500))
        MainWindow.setMaximumSize(QtCore.QSize(750, 500))
        MainWindow.setStatusTip("")
        MainWindow.setWhatsThis("")
        MainWindow.setAccessibleName("")
        MainWindow.setAccessibleDescription("")
        MainWindow.setStyleSheet("QPushButton{\n"
"    width: 175;\n"
"    height: 100;\n"
"    border: none;\n"
"    background-color: gray;\n"
"}\n"
"QPushButton:hover{\n"
"    background-color: silver;\n"
"}")
        MainWindow.setTabShape(QtWidgets.QTabWidget.Rounded)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 751, 471))
        self.gridLayoutWidget.setObjectName("gridLayoutWidget")
        self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayout.setObjectName("gridLayout")
        self.MouseClicker = QtWidgets.QPushButton(self.gridLayoutWidget)
        self.MouseClicker.setEnabled(True)
        font = QtGui.QFont()
        font.setFamily("MS Reference Sans Serif")
        font.setPointSize(16)
        self.MouseClicker.setFont(font)
        self.MouseClicker.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.MouseClicker.setObjectName("MouseClicker")
        self.gridLayout.addWidget(self.MouseClicker, 5, 3, 1, 1)
        self.KeyboardClicker = QtWidgets.QPushButton(self.gridLayoutWidget)
        self.KeyboardClicker.setEnabled(True)
        font = QtGui.QFont()
        font.setFamily("MS Reference Sans Serif")
        font.setPointSize(16)
        self.KeyboardClicker.setFont(font)
        self.KeyboardClicker.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.KeyboardClicker.setObjectName("KeyboardClicker")
        self.gridLayout.addWidget(self.KeyboardClicker, 5, 1, 1, 1)
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem, 5, 6, 1, 1)
        self.MSGSpam = QtWidgets.QPushButton(self.gridLayoutWidget)
        self.MSGSpam.setEnabled(True)
        font = QtGui.QFont()
        font.setFamily("MS Reference Sans Serif")
        font.setPointSize(16)
        self.MSGSpam.setFont(font)
        self.MSGSpam.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.MSGSpam.setObjectName("MSGSpam")
        self.gridLayout.addWidget(self.MSGSpam, 5, 5, 1, 1)
        spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem1, 1, 3, 1, 1)
        spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem2, 5, 0, 1, 1)
        spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem3, 5, 4, 1, 1)
        spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem4, 2, 3, 1, 1)
        spacerItem5 = QtWidgets.QSpacerItem(20, 50, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem5, 4, 3, 1, 1)
        spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem6, 5, 2, 1, 1)
        spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem7, 6, 3, 1, 1)
        self.label = QtWidgets.QLabel(self.gridLayoutWidget)
        font = QtGui.QFont()
        font.setFamily("MS Reference Sans Serif")
        font.setPointSize(30)
        self.label.setFont(font)
        self.label.setTextFormat(QtCore.Qt.AutoText)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 3, 3, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 750, 26))
        self.menuBar.setObjectName("menuBar")
        self.menu = QtWidgets.QMenu(self.menuBar)
        self.menu.setObjectName("menu")
        self.menu_2 = QtWidgets.QMenu(self.menu)
        self.menu_2.setObjectName("menu_2")
        MainWindow.setMenuBar(self.menuBar)
        self.action_5 = QtWidgets.QAction(MainWindow)
        self.action_5.setObjectName("action_5")
        self.action_6 = QtWidgets.QAction(MainWindow)
        self.action_6.setObjectName("action_6")
        self.action_7 = QtWidgets.QAction(MainWindow)
        self.action_7.setObjectName("action_7")
        self.menu_2.addAction(self.action_5)
        self.menu_2.addAction(self.action_6)
        self.menu.addAction(self.menu_2.menuAction())
        self.menu.addAction(self.action_7)
        self.menuBar.addAction(self.menu.menuAction())

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

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MAClick"))
        self.MouseClicker.setText(_translate("MainWindow", "Мышка"))
        self.KeyboardClicker.setText(_translate("MainWindow", "Клавиатура"))
        self.MSGSpam.setText(_translate("MainWindow", "Спамер"))
        self.label.setText(_translate("MainWindow", "MAClick"))
        self.menu.setTitle(_translate("MainWindow", "Программа"))
        self.menu_2.setTitle(_translate("MainWindow", "Автор"))
        self.action_5.setText(_translate("MainWindow", "Поддежать"))
        self.action_5.setShortcut(_translate("MainWindow", "Shift+D"))
        self.action_6.setText(_translate("MainWindow", "Мой Дискорд"))
        self.action_6.setShortcut(_translate("MainWindow", "Shift+C"))
        self.action_7.setText(_translate("MainWindow", "Обновления"))
        self.action_7.setShortcut(_translate("MainWindow", "Shift+A"))


class MainWindow_2(QMainWindow, Ui_MainWindow_2):                                     # +++
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        

class MainWindow(QMainWindow, Ui_MainWindow):                                     # +++
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        
        self.KeyboardClicker.clicked.connect(self.keyboard_clicker)
        
        self.mainWindow_2 = MainWindow_2()
        
        
    def keyboard_clicker(self):
        self.mainWindow_2.show()
        self.hide()


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())

q1323424_2.py

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(300, 130)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Ignored)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMinimumSize(QtCore.QSize(0, 0))
        MainWindow.setMaximumSize(QtCore.QSize(750, 500))
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(30, 10, 241, 51))
        self.pushButton.setStyleSheet("QPushButton{\n"
"    width: 175;\n"
"    height: 100;\n"
"    border: none;\n"
"    background-color: gray;\n"
"}\n"
"QPushButton:hover{\n"
"   background-color: silver;\n"
"}")
        self.pushButton.setObjectName("pushButton")
        self.WorkMode = QtWidgets.QComboBox(self.centralwidget)
        self.WorkMode.setGeometry(QtCore.QRect(170, 70, 101, 21))
        self.WorkMode.setObjectName("WorkMode")
        self.WorkMode.addItem("")
        self.WorkMode.addItem("")
        self.CPSInput = QtWidgets.QLineEdit(self.centralwidget)
        self.CPSInput.setGeometry(QtCore.QRect(30, 100, 241, 21))
        self.CPSInput.setAlignment(QtCore.Qt.AlignCenter)
        self.CPSInput.setDragEnabled(False)
        self.CPSInput.setReadOnly(False)
        self.CPSInput.setObjectName("CPSInput")
        self.ButtonIs = QtWidgets.QComboBox(self.centralwidget)
        self.ButtonIs.setGeometry(QtCore.QRect(30, 70, 101, 21))
        self.ButtonIs.setObjectName("ButtonIs")
        self.ButtonIs.addItem("")
        self.ButtonIs.addItem("")
        MainWindow.setCentralWidget(self.centralwidget)

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

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Текущий Тригер: none"))
        self.WorkMode.setItemText(0, _translate("MainWindow", "Auto"))
        self.WorkMode.setItemText(1, _translate("MainWindow", "NoAuto"))
        self.CPSInput.setText(_translate("MainWindow", "Предпочитаемый CPS (От 0.1 До 50)"))
        self.ButtonIs.setItemText(0, _translate("MainWindow", "Left"))
        self.ButtonIs.setItemText(1, _translate("MainWindow", "Right"))

введите сюда описание изображения

введите сюда описание изображения

→ Ссылка