关于PYQT中QMainWindow显示控件的理解

在QMainWindow中是不能直接显示控件的,比如按钮、标签等。如果在QMainWindow中显示控件,可以通过下面的方法来实现:

1、添加一个布局,在布局中添加要显示的控件

2、添加一个QWidget部件

3、把布局关联到QWidget部件上

4、这样就可以通过QWidget部件来显示控件了

 

具体代码:

from PyQt5.QtWidgets import QMainWindow,QHBoxLayout,QPushButton,QApplication,QWidget
import sys



class WinForm(QMainWindow):
    """docstring for WinForm"""
    def __init__(self, parent=None):
        super(WinForm, self).__init__()
        self.setWindowTitle('关闭主窗口例子')
# 创建一个按钮 self.button1 = QPushButton('关闭窗口例子') # 点击按钮时,触发一个事件 self.button1.clicked.connect(self.onButtonClick)
# 添加一个布局管理器 layout = QHBoxLayout() # 在布局管理器中添加上面创建的按钮 layout.addWidget(self.button1) # 创建一个QWidget部件,用来显示布局管理器 main_frame = QWidget() # 把布局管理器放到QWidget上 main_frame.setLayout(layout) # 居中显示布局管理器 self.setCentralWidget(main_frame) def onButtonClick(self): sender = self.sender() print(sender.text() + '被按下了') qApp = QApplication.instance() qApp.quit() if __name__ == '__main__': app = QApplication(sys.argv) form = WinForm() form.show() sys.exit(app.exec())

 

posted on 2020-07-01 18:04  blackangeldsf  阅读(534)  评论(0)    收藏  举报

导航