关于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) 收藏 举报
浙公网安备 33010602011771号