PyQt6: AttributeError: 'Config_lod' object has no attribute 'widescreen'

Рейтинг: 0Ответов: 1Опубликовано: 21.07.2023

Помогите пожалуйста, никак не могу разобраться, что я делаю не так

main.py:

from PyQt6.QtWidgets import QApplication, QMainWindow
from PyQt6.QtCore import Qt

import interface_ui

class Config_lod(QMainWindow, interface_ui.Ui_MainWindow):
    
    def __init__(self, parent = None):
        super().__init__(parent)
        self.ui = interface_ui.Ui_MainWindow()
        self.ui.setupUi(self)
        
        self.setFixedSize(self.size())
        
        self.widescreen.stateChanged.connect(self.on_checkbox_changed)
        self.autofpslimit.stateChanged.connect(self.on_checkbox_changed)


    def on_checkbox_changed(self, value):
        state = Qt.CheckState(value)
        if state == Qt.CheckState.Checked:
            print('Checked')
        elif state == Qt.CheckState.Unchecked:
            print('Unchecked')


if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    ex = Config_lod()
    ex.show()
    sys.exit(app.exec())

interface_ui.py:

from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        MainWindow.setMinimumSize(QtCore.QSize(0, 0))
        MainWindow.setMaximumSize(QtCore.QSize(800, 600))
        MainWindow.setBaseSize(QtCore.QSize(800, 600))
        MainWindow.setStyleSheet("QMainWidget {\n"
"background-color: #23272E;\n"
"border: none;\n"
"}")
        self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
        self.centralwidget.setStyleSheet("QWidget {\n"
"background-color: #23272E;\n"
"}")
        self.centralwidget.setObjectName("centralwidget")
        self.gridFrame = QtWidgets.QFrame(parent=self.centralwidget)
        self.gridFrame.setGeometry(QtCore.QRect(0, 0, 731, 21))
        self.gridFrame.setStyleSheet("QFrame {\n"
"background-color: #1E2227;\n"
"border: 1px solid;\n"
"border-color: black;\n"
"}")
        self.gridFrame.setObjectName("gridFrame")
        self.horizontalFrame = QtWidgets.QFrame(parent=self.centralwidget)
        self.horizontalFrame.setGeometry(QtCore.QRect(730, 0, 71, 21))
        self.horizontalFrame.setMinimumSize(QtCore.QSize(71, 21))
        self.horizontalFrame.setMaximumSize(QtCore.QSize(71, 21))
        self.horizontalFrame.setStyleSheet("QFrame {\n"
"background-color: #1E2227;\n"
"border: 1px solid;\n"
"border-color: black;\n"
"}")
        self.horizontalFrame.setObjectName("horizontalFrame")
        self.close_btn = QtWidgets.QPushButton(parent=self.horizontalFrame)
        self.close_btn.setGeometry(QtCore.QRect(35, 0, 35, 21))
        font = QtGui.QFont()
        self.close_btn.setFont(font)
        self.close_btn.setStyleSheet("QPushButton {\n"
"border: none;\n"
"background: none;\n"
"background-color: none;\n"
"font-size: 12px bold;\n"
"margin: 0px;\n"
"padding: 0px;\n"
"color: #6B717D;\n"
"}\n"
"\n"
"QPushButton::hover {\n"
"background-color: #E81123;\n"
"}\n"
"\n"
"QPushButton::pressed {\n"
"background-color: #981A27;\n"
"}")
        self.close_btn.setObjectName("close_btn")
        self.min_btn = QtWidgets.QPushButton(parent=self.horizontalFrame)
        self.min_btn.setGeometry(QtCore.QRect(0, 0, 35, 21))
        font = QtGui.QFont()
        self.min_btn.setFont(font)
        self.min_btn.setStyleSheet("QPushButton {\n"
"border: none;\n"
"background: none;\n"
"background-color: none;\n"
"font-size: 12px bold;\n"
"margin: 0px;\n"
"padding: 0px;\n"
"color: #6B717D;\n"
"}\n"
"\n"
"QPushButton::hover {\n"
"background-color: #3C3F44;\n"
"}\n"
"\n"
"QPushButton::pressed {\n"
"background-color: #5C5F64;\n"
"}")
        self.min_btn.setObjectName("min_btn")
        self.verticalFrame = QtWidgets.QFrame(parent=self.centralwidget)
        self.verticalFrame.setGeometry(QtCore.QRect(0, 20, 801, 581))
        self.verticalFrame.setStyleSheet("QFrame {\n"
"background-color: #23272E;\n"
"border: none;\n"
"}")
        self.verticalFrame.setObjectName("verticalFrame")
        self.tabWidget = QtWidgets.QTabWidget(parent=self.verticalFrame)
        self.tabWidget.setEnabled(True)
        self.tabWidget.setGeometry(QtCore.QRect(0, 35, 851, 591))
        font = QtGui.QFont()
        font.setPointSize(8)
        font.setBold(True)
        font.setWeight(75)
        font.setKerning(True)
        self.tabWidget.setFont(font)
        self.tabWidget.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.NoContextMenu)
        self.tabWidget.setAcceptDrops(False)
        self.tabWidget.setLayoutDirection(QtCore.Qt.LayoutDirection.LeftToRight)
        self.tabWidget.setAutoFillBackground(False)
        self.tabWidget.setStyleSheet("QTabWidget {\n"
"border: 0px;\n"
"}")
        self.tabWidget.setTabPosition(QtWidgets.QTabWidget.TabPosition.North)
        self.tabWidget.setObjectName("tabWidget")
        self.hotheys_tab = QtWidgets.QWidget()
        self.hotheys_tab.setStyleSheet("QWidget {\n"
"background-color: #23272E;\n"
"border: none;\n"
"}")
        self.hotheys_tab.setObjectName("hotheys_tab")
        self.tabWidget.addTab(self.hotheys_tab, "")
        self.gameoptions_tab = QtWidgets.QWidget()
        self.gameoptions_tab.setObjectName("gameoptions_tab")
        self.frame = QtWidgets.QFrame(parent=self.gameoptions_tab)
        self.frame.setGeometry(QtCore.QRect(0, 0, 401, 531))
        self.frame.setObjectName("frame")
        self.autoselectsummrad = QtWidgets.QSpinBox(parent=self.frame)
        self.autoselectsummrad.setGeometry(QtCore.QRect(20, 418, 71, 18))
        self.autoselectsummrad.setStyleSheet("QSpinBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.autoselectsummrad.setObjectName("autoselectsummrad")
        self.autoselectsummrad_label = QtWidgets.QLabel(parent=self.frame)
        self.autoselectsummrad_label.setGeometry(QtCore.QRect(100, 420, 301, 16))
        self.autoselectsummrad_label.setStyleSheet("QLabel {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.autoselectsummrad_label.setObjectName("autoselectsummrad_label")
        self.widescreen = QtWidgets.QCheckBox(parent=self.frame)
        self.widescreen.setGeometry(QtCore.QRect(20, 33, 381, 17))
        self.widescreen.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.widescreen.setObjectName("widescreen")
        self.autofpslimit = QtWidgets.QCheckBox(parent=self.frame)
        self.autofpslimit.setGeometry(QtCore.QRect(20, 88, 381, 17))
        self.autofpslimit.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.autofpslimit.setObjectName("autofpslimit")
        self.lockmouse = QtWidgets.QCheckBox(parent=self.frame)
        self.lockmouse.setGeometry(QtCore.QRect(20, 143, 381, 17))
        self.lockmouse.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.lockmouse.setObjectName("lockmouse")
        self.autoselecthero = QtWidgets.QCheckBox(parent=self.frame)
        self.autoselecthero.setGeometry(QtCore.QRect(20, 198, 381, 17))
        self.autoselecthero.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.autoselecthero.setObjectName("autoselecthero")
        self.displaymanabars = QtWidgets.QCheckBox(parent=self.frame)
        self.displaymanabars.setGeometry(QtCore.QRect(20, 253, 381, 17))
        self.displaymanabars.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.displaymanabars.setObjectName("displaymanabars")
        self.tpstopsoft = QtWidgets.QCheckBox(parent=self.frame)
        self.tpstopsoft.setGeometry(QtCore.QRect(20, 308, 381, 17))
        self.tpstopsoft.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.tpstopsoft.setObjectName("tpstopsoft")
        self.tpstop = QtWidgets.QCheckBox(parent=self.frame)
        self.tpstop.setGeometry(QtCore.QRect(20, 363, 381, 17))
        self.tpstop.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.tpstop.setObjectName("tpstop")
        self.closewc = QtWidgets.QCheckBox(parent=self.frame)
        self.closewc.setGeometry(QtCore.QRect(20, 474, 381, 17))
        self.closewc.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.closewc.setObjectName("closewc")
        self.frame1 = QtWidgets.QFrame(parent=self.gameoptions_tab)
        self.frame1.setGeometry(QtCore.QRect(400, 0, 401, 531))
        self.frame1.setObjectName("frame1")
        self.autoattackh = QtWidgets.QCheckBox(parent=self.frame1)
        self.autoattackh.setGeometry(QtCore.QRect(20, 33, 371, 17))
        self.autoattackh.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.autoattackh.setObjectName("autoattackh")
        self.autoattacku = QtWidgets.QCheckBox(parent=self.frame1)
        self.autoattacku.setGeometry(QtCore.QRect(20, 88, 371, 17))
        self.autoattacku.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.autoattacku.setObjectName("autoattacku")
        self.autoattackstop = QtWidgets.QCheckBox(parent=self.frame1)
        self.autoattackstop.setGeometry(QtCore.QRect(20, 143, 371, 17))
        self.autoattackstop.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.autoattackstop.setObjectName("autoattackstop")
        self.smartattack = QtWidgets.QCheckBox(parent=self.frame1)
        self.smartattack.setGeometry(QtCore.QRect(20, 198, 371, 17))
        self.smartattack.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.smartattack.setObjectName("smartattack")
        self.rightclickdeny = QtWidgets.QCheckBox(parent=self.frame1)
        self.rightclickdeny.setGeometry(QtCore.QRect(20, 253, 371, 17))
        self.rightclickdeny.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.rightclickdeny.setObjectName("rightclickdeny")
        self.selectionhelper = QtWidgets.QCheckBox(parent=self.frame1)
        self.selectionhelper.setGeometry(QtCore.QRect(20, 308, 371, 17))
        self.selectionhelper.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.selectionhelper.setObjectName("selectionhelper")
        self.doubleclickhelper = QtWidgets.QCheckBox(parent=self.frame1)
        self.doubleclickhelper.setGeometry(QtCore.QRect(20, 363, 371, 17))
        self.doubleclickhelper.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.doubleclickhelper.setObjectName("doubleclickhelper")
        self.visitsite = QtWidgets.QCheckBox(parent=self.frame1)
        self.visitsite.setGeometry(QtCore.QRect(20, 418, 371, 17))
        self.visitsite.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.visitsite.setObjectName("visitsite")
        self.iamshy = QtWidgets.QCheckBox(parent=self.frame1)
        self.iamshy.setGeometry(QtCore.QRect(20, 473, 371, 17))
        self.iamshy.setStyleSheet("QCheckBox {\n"
"color: rgb(255, 255, 255);\n"
"}")
        self.iamshy.setObjectName("iamshy")
        self.tabWidget.addTab(self.gameoptions_tab, "")
        self.visuals_tab = QtWidgets.QWidget()
        self.visuals_tab.setObjectName("visuals_tab")
        self.tabWidget.addTab(self.visuals_tab, "")
        self.hpbars_tab = QtWidgets.QWidget()
        self.hpbars_tab.setObjectName("hpbars_tab")
        self.tabWidget.addTab(self.hpbars_tab, "")
        self.chat_tab = QtWidgets.QWidget()
        self.chat_tab.setObjectName("chat_tab")
        self.tabWidget.addTab(self.chat_tab, "")
        self.gamesets_tab = QtWidgets.QWidget()
        self.gamesets_tab.setObjectName("gamesets_tab")
        self.tabWidget.addTab(self.gamesets_tab, "")
        self.useful_tab = QtWidgets.QWidget()
        self.useful_tab.setObjectName("useful_tab")
        self.tabWidget.addTab(self.useful_tab, "")
        self.about_tab = QtWidgets.QWidget()
        self.about_tab.setObjectName("about_tab")
        self.tabWidget.addTab(self.about_tab, "")
        self.path_btn = QtWidgets.QPushButton(parent=self.verticalFrame)
        self.path_btn.setGeometry(QtCore.QRect(720, 10, 75, 21))
        self.path_btn.setStyleSheet("QPushButton {\n"
"color: White;\n"
"}")
        self.path_btn.setObjectName("path_btn")
        self.path_edit = QtWidgets.QLineEdit(parent=self.verticalFrame)
        self.path_edit.setGeometry(QtCore.QRect(260, 10, 451, 20))
        self.path_edit.setStyleSheet("QLineEdit {\n"
"color: White;\n"
"}")
        self.path_edit.setFrame(True)
        self.path_edit.setObjectName("path_edit")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Config LoD"))
        self.close_btn.setText(_translate("MainWindow", "X"))
        self.min_btn.setText(_translate("MainWindow", "_"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.hotheys_tab), _translate("MainWindow", "HOTKEYS"))
        self.autoselectsummrad_label.setText(_translate("MainWindow", "Autoselect Summoned Units Radius"))
        self.widescreen.setText(_translate("MainWindow", "Wide Screen"))
        self.autofpslimit.setText(_translate("MainWindow", "Auto FPS Limit"))
        self.lockmouse.setText(_translate("MainWindow", "Lock Mouse At Window"))
        self.autoselecthero.setText(_translate("MainWindow", "Autoselect Hero"))
        self.displaymanabars.setText(_translate("MainWindow", "Display Manabars"))
        self.tpstopsoft.setText(_translate("MainWindow", "Teleportation Can Only Be Stopped Soft"))
        self.tpstop.setText(_translate("MainWindow", "Teleportation Can Only Be Stopped"))
        self.closewc.setText(_translate("MainWindow", "Close WC3 Every Game"))
        self.autoattackh.setText(_translate("MainWindow", "Autoattack Heroes"))
        self.autoattacku.setText(_translate("MainWindow", "Autoattack Units"))
        self.autoattackstop.setText(_translate("MainWindow", "Autoattack Disabled By Stop Only"))
        self.smartattack.setText(_translate("MainWindow", "Smart Attack"))
        self.rightclickdeny.setText(_translate("MainWindow", "Right Click Deny"))
        self.selectionhelper.setText(_translate("MainWindow", "Selection Helper"))
        self.doubleclickhelper.setText(_translate("MainWindow", "Double Click Helper"))
        self.visitsite.setText(_translate("MainWindow", "I Dont Want To Visit Site"))
        self.iamshy.setText(_translate("MainWindow", "I Am Shy"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.gameoptions_tab), _translate("MainWindow", "GAME OPTIONS"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.visuals_tab), _translate("MainWindow", "VISUALS"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.hpbars_tab), _translate("MainWindow", "HP BARS"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.chat_tab), _translate("MainWindow", "CHAT"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.gamesets_tab), _translate("MainWindow", "GAME SETS"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.useful_tab), _translate("MainWindow", "USEFUL"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.about_tab), _translate("MainWindow", "ABOUT"))
        self.path_btn.setText(_translate("MainWindow", "Search"))
        self.path_edit.setPlaceholderText(_translate("MainWindow", "Set path to \"config.lod.ini\""))

Ошибка:

Traceback (most recent call last):
  File "d:\Code\Python\PyQt5\Config_LoD\main.py", line 67, in <module>
    ex = Config_lod()
         ^^^^^^^^^^^^
  File "d:\Code\Python\PyQt5\Config_LoD\main.py", line 18, in __init__
    self.widescreen.stateChanged.connect(self.on_checkbox_changed)
    ^^^^^^^^^^^^^^^
AttributeError: 'Config_lod' object has no attribute 'widescreen'

Ответы

▲ 0Принят

Вы неправильно пытаетесь обратиться к объекту файла interface_ui.py.

Замените

self.widescreen.stateChanged.connect(self.on_checkbox_changed)
self.autofpslimit.stateChanged.connect(self.on_checkbox_changed)

На

self.ui.widescreen.stateChanged.connect(self.on_checkbox_changed)
self.ui.autofpslimit.stateChanged.connect(self.on_checkbox_changed)

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