QMainWindow窗口可以包含菜单栏、工具栏、状态栏、标题栏等

时间:2022-05-16 01:44:18

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( ) self.status.showMessage("这是状态栏提示",5000) if __name__ == "__main__": app = QApplication(sys.argv) app.setWindowIcon(QIcon("www.yszx11.cn/ /images/cartoon1.ico")) main = MainWidget() 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( ) 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( ) #将窗口移动到屏幕中间 self.move((screen.width()-size.width())/2,(screen.height()-size.height())/2) def onButtonClick(self): # sender是发送信号的东西 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_())

PyQt5学习--根基窗口控件--QMainWindow

标签:

原文地点:https://www.cnblogs.com/qwangxiao/p/8929125.html