我的主类桌面没有返回第二类的按钮.Why就是这样发生的。我没有使用第二个类在主类中创建方法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()发布于 2019-04-22 06:56:23
如果要将按钮添加到主类中,则不应创建另一个类。
在Qt中,像按钮这样的小部件作为窗口的一部分,它必须是窗口的子级,而要成为窗口的子级,至少有两种方法:将小部件设置为属于窗口的布局,将窗口的一个元素作为父级,对于像QPushButton这样的小部件,父级被传递到构造函数中。
另一方面,我看到你的代码没有任何意义,比如:
self.background=self.setStyleSheet('background-color:blue')
self.size=self.setGeometry(200,200,300,300)
self.title=self.setWindowTitle('app')Qt中的setXXX函数不返回任何内容,因为它们是setter,所以self.background、self.size和self.title将为None。
from PyQt5 import QtCore, QtGui, QtWidgets
class Desktop(QtWidgets.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 = QtWidgets.QAction(QtGui.QIcon("exit.png"), "&Exit", self)
exitAction.setShortcut("Ctrl+Q")
exitAction.setStatusTip("Exit application")
exitAction.triggered.connect(QtWidgets.qApp.quit)
menubar = self.menuBar()
fileMenu = menubar.addMenu("&File")
fileMenu.addAction(exitAction)
self.setStyleSheet("background-color:blue")
self.setGeometry(200, 200, 300, 300)
self.setWindowTitle("app")
self.show()
def add_button(self):
self.btn_play = QtWidgets.QPushButton(self) # <--- set parent of btn_play
# to self
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 = QtWidgets.QPushButton(self)
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 = QtWidgets.QPushButton(self)
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)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Desktop()
w.show()
sys.exit(app.exec_())https://stackoverflow.com/questions/55787383
复制相似问题