Python 如何使用主类中的第二类作为方法

Python 如何使用主类中的第二类作为方法,python,class,inheritance,pyqt5,Python,Class,Inheritance,Pyqt5,我的主类桌面没有返回第二类的按钮。为什么会发生这种情况。我在主类中创建方法add_button时没有使用第二个类,但initUI的一部分由于继承而停止工作,所以我接受了resolve create additional class class Another_desktop(QMainWindow): def add_button(self): self.btn_play=QPushButton() self.btn_play.setStyleSheet(

我的主类桌面没有返回第二类的按钮。为什么会发生这种情况。我在主类中创建方法add_button时没有使用第二个类,但initUI的一部分由于继承而停止工作,所以我接受了resolve create additional class

class Another_desktop(QMainWindow):
    def add_button(self):
        self.btn_play=QPushButton()
        self.btn_play.setStyleSheet('background-color: blue')
        self.btn_play.setIcon(QtGui.QIcon('icons8-circled-play-120.png'))
        self.btn_play.setIconSize(QtCore.QSize(22,22))
        self.btn_play.move(10,40)
        self.btn_stop=QPushButton()
        self.btn_stop.setStyleSheet('background-color: blue')
        self.btn_stop.setIcon(QtGui.QIcon('icons8-pause-button-40.png'))
        self.btn_stop.setIconSize(QtCore.QSize(22,22))
        self.btn_stop.move(50,40)
        self.btn_next=QPushButton()
        self.btn_next.setStyleSheet('background-color: blue')
        self.btn_next.setIcon(QtGui.QIcon('icons8-back-40.png'))
        self.btn_next.setIconSize(QtCore.QSize(22,22))
        self.btn_next.move(200,40)


class Desktop(QMainWindow):
    def __init__(self):
        super().__init__()
        self.__count=0
        self.__layout=0
        self.add_button()
        self.__button_open()
        self.click()
        self.initUI()

    def initUI(self):
        exitAction = QAction(QIcon('exit.png'), '&Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(qApp.quit)
        self.statusBar()
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)
        self.background=self.setStyleSheet('background-color:blue')
        self.size=self.setGeometry(200,200,300,300)
        self.title=self.setWindowTitle('app')
        self.show()

    def add_button(self):
        self.add_but=Another_desktop().add_button()

如果要将按钮添加到主类中,则不应创建其他类

在Qt中,对于像按钮这样的小部件来说,它必须是窗口的子窗口,并且要成为窗口的子窗口,至少有两种方法:将小部件设置为属于窗口的布局,以将窗口的一个元素作为父窗口,对于像QPushButton这样的小部件,父窗口在构造函数中传递

另一方面,我发现您的代码没有意义,比如:

self.background=self.setStyleSheet('background-color:blue'))
self.size=self.setGeometry(200300300)
self.title=self.setWindowTitle(“应用程序”)
Qt中的setXXX函数不返回任何内容,因为它们是setter,因此self.background、self.size和self.title将为空

从PyQt5导入QtCore、QtGui、qtwidget
类桌面(QtWidgets.QMainWindow):
定义初始化(自):
super()。\uuuu init\uuuuu()
自计数=0
自身布局=0
self.add_按钮()
#self.\u按钮\u打开()
#self.click()
self.initUI()
def initUI(self):
exitAction=QtWidgets.QAction(QtGui.QIcon(“exit.png”),“退出”和“self”)
exitAction.setShortcut(“Ctrl+Q”)
exitAction.SetStatusIP(“退出应用程序”)
exitAction.triggered.connect(qtwidts.qApp.quit)
menubar=self.menubar()
fileMenu=menubar.addMenu(“&File”)
fileMenu.addAction(exitAction)
self.setStyleSheet(“背景色:蓝色”)
self.setGeometry(200200300300)
self.setWindowTitle(“应用程序”)
self.show()
def添加按钮(自身):

self.btn_play=QtWidgets.QPushButton(self)#我如何在这里(self.btn_play=QtWidgets.QPushButton(self))指向另一个的链接class@PhilipVasilevski如果你这样做,按钮将属于另一个window@PhilipVasilevski为什么要创建另一个桌面类?,至少在你的问题中没有解释它,我想当我说‘self’时,我的self.btn_play指的是QMainWindow,我想‘self’指的是Qwidget,因为如果我没有定义Qwidget,按钮就会返回,但它们的大小是恒定的。我认为这个错误与继承有关,你能解释一下它是如何发生的吗works@PhilipVasilevski自我与继承无关,所以你知道我会打个比方:当他们说Philip住在XXX,我住在XXX时,第一种情况是有人在谈论你,第二种情况是你自己在谈论你。因此,
self
指的是对象本身正在被修改的事实,也就是说,
self
是相对于类的