Как открыть окно по нажатию на кнопку?
Я хотел, чтобы по нажатию на кнопку открывалось второе окно.
Первые два кода сделаны в 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"))

