最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Not activated the widgets of the dialog box made in Qt-designer PyQt5 - Stack Overflow

programmeradmin1浏览0评论

I wrote code for a board game application to randomly select a team based on the components available to the players. The code with the TkInter add-on works correctly, it is formed as needed, but the interface does not suit, so I decided to do it using QtDesigner. Created a set of three windows. The main one and two dialogs. In the main window, I configure the components, launch the dialogs, and that's it, not a single widget is activated, data is not read from them. I can't figure out what the error is, what syntax should be used to run it. I seem to be following the instructions. Please indicate what is wrong?

import sys
import random

from PyQt5.QtWidgets import QApplication, QDialog, QMainWindow
from menu1 import Ui_MainWindow
from menu2 import Ui_Dialog

global clicks, warriors, magics, scouts, healers, CardOL, Special_W, Special_M, Special_S, Special_H

class menu1(QMainWindow):

    def __init__(self, parent=None):
        super().__init__(parent)
        self.Ui = Ui_MainWindow()
        self.Ui.setupUi(self)
        self.show()

        self.Ui.pushButton.clicked.connect(self.setup_games)
        self.Ui.pushButton_3.clicked.connect(self.select_all)
        self.Ui.pushButton_4.clicked.connect(self.reset_all)

    def select_all(self):
        self.Ui.checkBox_1.setChecked(True)
        self.Ui.checkBox_2.setChecked(True)
     
    def reset_all(self):
        self.Ui.checkBox_1.setChecked(False)
        self.Ui.checkBox_2.setChecked(False)
        
# A dialog box opens with the checkbox and push button widgets for working with additional lists.

    def setup_games(self):
        self.menu2 = QDialog()
        self.ui_menu2 = Ui_Dialog()
        self.ui_menu2.setupUi(self.menu2)
        self.menu2.show()

class menu2(QDialog):

    def __init__(self):
        super().__init__()
        self.Ui = Ui_Dialog()
        self.Ui.setupUi(self)

        self.Ui.pushButton_3.clicked.connect(self.reset_all_W)
        self.Ui.pushButton_4.clicked.connect(self.select_all_W)

    def select_all_W(self):
        self.Ui.checkBox_2.setChecked(True)
        self.Ui.checkBox_3.setChecked(True)

    def reset_all_W(self):
        self.Ui.checkBox_2.setChecked(False)
        self.Ui.checkBox_3.setChecked(False)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = menu1()
    window.show()

    sys.exit(app.exec_())

Here is the dialog box code:

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.setWindowModality(QtCore.Qt.ApplicationModal)
        Dialog.resize(536, 526)
        Dialog.setStyleSheet("font: 57 10pt \"Windlass\";")
        self.tabWidget = QtWidgets.QTabWidget(Dialog)
        self.tabWidget.setGeometry(QtCore.QRect(10, 10, 501, 441))
        self.tabWidget.setStyleSheet("font: 57 10pt \"Windlass\";\n"
"background-color: rgb(149, 154, 255);\n"
"")
        self.tabWidget.setTabBarAutoHide(True)
        self.tabWidget.setObjectName("tabWidget")
        self.tab = QtWidgets.QWidget()
        self.tab.setAutoFillBackground(False)
        self.tab.setStyleSheet("background-color: rgb(255, 169, 166);\n"
"")
        self.tab.setObjectName("tab")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.tab)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.formLayout = QtWidgets.QFormLayout()
        self.formLayout.setHorizontalSpacing(100)
        self.formLayout.setVerticalSpacing(11)
        self.formLayout.setObjectName("formLayout")
        self.checkBox_2 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_2.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_2.setObjectName("checkBox_2")
        self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.checkBox_2)
        self.checkBox_9 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_9.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_9.setObjectName("checkBox_9")
        self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.checkBox_9)
        self.checkBox_3 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_3.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_3.setObjectName("checkBox_3")
        self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.checkBox_3)
        self.checkBox_10 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_10.setStyleSheet("color: rgb(0, 0, 0);\n"
"")
        self.checkBox_10.setObjectName("checkBox_10")
        self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.checkBox_10)
        self.checkBox_4 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_4.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_4.setObjectName("checkBox_4")
        self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.checkBox_4)
        self.checkBox_11 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_11.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_11.setObjectName("checkBox_11")
        self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.checkBox_11)
        self.checkBox_5 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_5.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_5.setObjectName("checkBox_5")
        self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.checkBox_5)
        self.checkBox_12 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_12.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_12.setObjectName("checkBox_12")
        self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.checkBox_12)
        self.checkBox_6 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_6.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_6.setObjectName("checkBox_6")
        self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.checkBox_6)
        self.checkBox_13 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_13.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_13.setObjectName("checkBox_13")
        self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.checkBox_13)
        self.checkBox_7 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_7.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_7.setObjectName("checkBox_7")
        self.formLayout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.checkBox_7)
        self.checkBox_14 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_14.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_14.setObjectName("checkBox_14")
        self.formLayout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.checkBox_14)
        self.checkBox_8 = QtWidgets.QCheckBox(self.tab)
        self.checkBox_8.setStyleSheet("color: rgb(0, 0, 0);")
        self.checkBox_8.setObjectName("checkBox_8")
        self.formLayout.setWidget(6, QtWidgets.QFormLayout.SpanningRole, self.checkBox_8)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton_4 = QtWidgets.QPushButton(self.tab)
        self.pushButton_4.setStyleSheet("background-color: rgb(170, 255, 127);")
        self.pushButton_4.setObjectName("pushButton_4")
        self.horizontalLayout.addWidget(self.pushButton_4)
        self.pushButton_3 = QtWidgets.QPushButton(self.tab)
        self.pushButton_3.setStyleSheet("background-color: rgb(255, 119, 119);")
        self.pushButton_3.setObjectName("pushButton_3")
        self.horizontalLayout.addWidget(self.pushButton_3)
        self.formLayout.setLayout(7, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout)
        self.verticalLayout_2.addLayout(self.formLayout)
        self.tabWidget.addTab(self.tab, "")
        self.tab_2 = QtWidgets.QWidget()
        self.tab_2.setStyleSheet("background-color: rgb(255, 252, 152);\n"
"")
        self.tab_2.setObjectName("tab_2")
        self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.tab_2)
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.tabWidget.addTab(self.tab_2, "")
        self.tab_3 = QtWidgets.QWidget()
        self.tab_3.setStyleSheet("background-color: rgb(143, 255, 143);\n"
"")
        self.tab_3.setObjectName("tab_3")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.tab_3)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.tabWidget.addTab(self.tab_3, "")
        self.tab_4 = QtWidgets.QWidget()
        self.tab_4.setStyleSheet("background-color: rgb(136, 230, 250);")
        self.tab_4.setObjectName("tab_4")
        self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.tab_4)
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout()
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.verticalLayout_6.addLayout(self.verticalLayout_3)
        self.tabWidget.addTab(self.tab_4, "")
        self.tab_5 = QtWidgets.QWidget()
        self.tab_5.setObjectName("tab_5")
        self.tabWidget.addTab(self.tab_5, "")
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(330, 460, 169, 27))
        self.pushButton.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Dialog)
        self.tabWidget.setCurrentIndex(0)
        self.pushButton.clicked.connect(Dialog.accept) # type: ignore
        QtCore.QMetaObject.connectSlotsByName(Dialog)
        Dialog.setTabOrder(self.tabWidget, self.checkBox_2)
        Dialog.setTabOrder(self.checkBox_2, self.checkBox_3)
        Dialog.setTabOrder(self.checkBox_3, self.checkBox_4)
        Dialog.setTabOrder(self.checkBox_4, self.checkBox_5)
        Dialog.setTabOrder(self.checkBox_5, self.checkBox_6)
        Dialog.setTabOrder(self.checkBox_6, self.checkBox_7)
        Dialog.setTabOrder(self.checkBox_7, self.checkBox_8)
        Dialog.setTabOrder(self.checkBox_8, self.checkBox_9)
        Dialog.setTabOrder(self.checkBox_9, self.checkBox_10)
        Dialog.setTabOrder(self.checkBox_10, self.checkBox_11)
        Dialog.setTabOrder(self.checkBox_11, self.checkBox_12)
        Dialog.setTabOrder(self.checkBox_12, self.checkBox_13)
        Dialog.setTabOrder(self.checkBox_13, self.checkBox_14)
        Dialog.setTabOrder(self.checkBox_14, self.pushButton_4)
        Dialog.setTabOrder(self.pushButton_4, self.pushButton_3)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.checkBox_2.setText(_translate("Dialog", "Карнон"))
        self.checkBox_9.setText(_translate("Dialog", "Однолапый"))
        self.checkBox_3.setText(_translate("Dialog", "Корбин"))
        self.checkBox_10.setText(_translate("Dialog", "Стальные рога"))
        self.checkBox_4.setText(_translate("Dialog", "Круцбек"))
        self.checkBox_11.setText(_translate("Dialog", "Сэр Валадир"))
        self.checkBox_5.setText(_translate("Dialog", "Лорд Хартон"))
        self.checkBox_12.setText(_translate("Dialog", "Талия"))
        self.checkBox_6.setText(_translate("Dialog", "Мордог"))
        self.checkBox_13.setText(_translate("Dialog", "Тренлой Сильный"))
        self.checkBox_7.setText(_translate("Dialog", "Нанок-Клинок"))
        self.checkBox_14.setText(_translate("Dialog", "Элиам"))
        self.checkBox_8.setText(_translate("Dialog", "Нара-Клык"))
        self.pushButton_4.setText(_translate("Dialog", "Хочу всех!"))
        self.pushButton_3.setText(_translate("Dialog", "Не хочу всех!"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Dialog", "Воины"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("Dialog", "Маги"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("Dialog", "Разведчики"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("Dialog", "Поддержка"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("Dialog", "Адьютанты"))
        self.pushButton.setText(_translate("Dialog", "Возвертаться"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

I deleted most of the code with the lists and their analysis. If you move the buttons and checkboxes to the main window, then the functions work as expected, everything is activated.

There is only one problem: the button or the checkbox in the dialog box is not activated.

发布评论

评论列表(0)

  1. 暂无评论