PyQt5学习--基本窗口控件--QMainWindow
Posted qwangxiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQt5学习--基本窗口控件--QMainWindow相关的知识,希望对你有一定的参考价值。
QMainWindow主窗口为用户提供一个应用程序框架,它有自己的布局,可以在布局中添加控件。比如将工具栏、菜单栏和状态栏等添加到布局管理器中。
窗口类型介绍
QMainWindow、QWidget和QDialog三个类都是用来创建窗口的。
QMainWindow窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式。
QWidget是对话框窗口的基类。对话框主要用来执行短期任务,或者与用户进行互动,它可以是模态的,也可以是非模态的。
如果是主窗口,就使用QMainWindow类;如果是对话框,就使用QDialog类;如果不确定,或者有可能作为顶层窗口,也有可能嵌入到其他窗口中,就使用QWidget类。
创建主窗口
QMainWindow类中比较重要的方法如下表所示:
方法 | 描述 |
---|---|
addToolBar() | 添加工具栏 |
centralWidget() | 返回窗口中心的一个控件,未设置时返回NULL |
menuBar() | 返回主窗口的菜单栏 |
setCentralWidget() | 设置窗口中心的控件 |
setsStatusBar() | 设置状态栏 |
statusBar() | 获得状态栏对象后,调用状态栏对象的showMessage(message,int timeout=0)方法,显示状态栏信息 |
直接上书上的代码
代码示例
创建主窗口
# -*- coding: utf-8 -*-
‘‘‘
【简介】
PyQT5中主窗口例子
‘‘‘
import sys
from PyQt5.QtWidgets import QMainWindow , QApplication
from PyQt5.QtGui import QIcon
class MainWidget(QMainWindow):
def __init__(self,parent=None):
super(MainWidget,self).__init__(parent)
# 设置主窗体标签
self.setWindowTitle("QMainWindow 例子")
self.resize(400, 200)
self.status = self.statusBar(www.boshenyl.cn )
self.status.showMessage("这是状态栏提示",5000)
if __name__ == "__main__":
app = QApplication(sys.argv)
app.setWindowIcon(QIcon("www.yszx11.cn/ /images/cartoon1.ico"))
main = MainWidget(www.mhylpt.com/)
main.show()
sys.exit(app.exec_())
移动和关闭主窗口
#coding=‘utf-8‘
#将窗口移动到屏幕中间和关闭主窗口的例子
import sys
from PyQt5.QtWidgets import QDesktopWidget,QMainWindow,QHBoxLayout,QPushButton,QApplication,QWidget
class WinForm(QMainWindow):
def __init__(self,parent=None):
super(WinForm, self).__init__(parent)
self.setWindowTitle(‘窗口放在中间和关闭主窗口的例子‘)
self.resize(370,250)
self.center(www.wanmeiyuele.cn )
self.button1 = QPushButton(‘关闭主窗口‘)
#将按钮的clicked信号与onButtonClick槽函数关联起来
self.button1.clicked.connect(self.onButtonClick)
layout = QHBoxLayout()
layout.addWidget(self.button1)
main_frame = QWidget()
main_frame.setLayout(layout)
self.setCentralWidget(main_frame)
def center(self):
#获得屏幕的大小
screen = QDesktopWidget().screenGeometry()
#获得QWidget窗口的大小
size = self.geometry(www.caibaoyule.cn )
#将窗口移动到屏幕中间
self.move((screen.width()-size.width())/2,(screen.height()-size.height())/2)
def onButtonClick(self):
# sender是发送信号的对象
sender = self.sender()
print(sender.text(www.jyz521.com/)+‘被按下了‘)
qApp = QApplication.instance()
qApp.quit(www.365soke.cn)
if __name__ == ‘__main__‘:
app = QApplication(sys.argv)
form = WinForm()
form.show()
sys.exit(app.exec_())
以上是关于PyQt5学习--基本窗口控件--QMainWindow的主要内容,如果未能解决你的问题,请参考以下文章
PyQt5 中当窗口大小改变时,如何去调整控件的位置以适应窗口大小改变的思考