python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法


Posted in Python onFebruary 26, 2020

QMainWindow

QMainWindow类中比较重要的方法

方法 描述
addToolBar() 添加工具栏
centralWidge() 返回窗口中心的一个控件,未设置时返回NULL
menuBar() 返回主窗口的菜单栏
setCentralWidget() 设置窗口中心的控件
setStatusBar() 设置状态栏
statusBar() 获得状态栏对象后,调用状态栏对象的showMessage(message,int timeout=0)方法
显示状态栏信息,其中第一个参数是要显示的状态栏信息,第二个参数是信息停留的时间,单位是毫秒,默认是0,表示一直显示状态栏信息

显示状态栏信息,其中第一个参数是要显示的状态栏信息,第二个参数是信息停留的时间,单位是毫秒,默认是0,表示一直显示状态栏信息

注意:QMainWindow不能设置布局(使用setLayout()方法),因为它有自己的布局

创建主窗口实例

#下面这行代码是为了避免在所生成的pyqt中出现中文乱码的问题
# -*- coding:UTF-8 -*-
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow
from PyQt5.QtGui import QIcon

class MainWindow(QMainWindow):
  def __init__(self,parent=None):
    #初始化继承的父类(Qmainwindow)
    super(MainWindow, self).__init__(parent)
    #设置窗口的大小
    self.resize(400,200)
    #实例化创建状态栏
    self.status=self.statusBar()
    #将提示信息显示在状态栏中showMessage(‘提示信息',显示时间(单位毫秒))
    self.status.showMessage('这是状态栏提示',4000)
    #创建窗口标题
    self.setWindowTitle('PyQt MainWindow例子')


if __name__ == '__main__':
  # 每一个pyqt程序中都需要有一个QApplication对象,sys.argv是一个命令行参数列表
  app=QApplication(sys.argv)
  #实例化窗口
  form=MainWindow()
  #窗口显示
  form.show()
  #进入程序的主循环,遇到退出情况,终止程序
  sys.exit(app.exec_())

效果图如下:

python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法

主窗口居中显示实例

from PyQt5.QtWidgets import QDesktopWidget,QApplication,QMainWindow
import sys

class WinForm(QMainWindow):
  def __init__(self,parent=None):
    super(WinForm, self).__init__(parent)

    self.setWindowTitle('主窗口居中的例子')
    #设置窗体的宽高
    self.resize(370,250)

    #调用一个函数
    self.center()

  def center(self):
    #获取屏幕的大小
    screen=QDesktopWidget().screenGeometry()
    #获取窗口的大小
    size=self.geometry()
    #将窗口移动到屏幕中央
    self.move((screen.width() - size.width()) /2,(screen.height() - size.height()) /2)


if __name__ == '__main__':
  app=QApplication(sys.argv)
  win=WinForm()
  win.show()
  sys.exit(app.exec_())

效果如下:

python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法

关闭主窗口实例

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

class WinForm(QMainWindow):

  def __init__(self,parent=None):
    super(WinForm, self).__init__(parent)
    self.setWindowTitle('关闭主窗口的例子')
    #创建按钮实例,按钮名称:关闭主窗口
    self.button1=QPushButton('关闭主窗口')
    #按钮的clicked信号与onButtonClick槽函数关联起来
    self.button1.clicked.connect(self.onButtonClick)

    #水平布局
    layout=QHBoxLayout()
    #按钮加入水平布局中
    layout.addWidget(self.button1)

    #创建widget窗口实例
    main_frame=QWidget()
    #加载布局
    main_frame.setLayout(layout)
    #把widget窗口加载到主窗口的中央位置
    self.setCentralWidget(main_frame)

  def onButtonClick(self):
    #sender是发送信号的对象,这里获得的是按钮的名称
    sender=self.sender()
    #以文本的行书输出按钮的名称
    print(sender.text() + ' 被按下了')
    #获取QApplication类的对象
    qApp=QApplication.instance()
    #退出
    qApp.quit()
if __name__ == '__main__':
  app=QApplication(sys.argv)
  win=WinForm()
  win.show()
  sys.exit(app.exec_())

点击按钮,退出程序,控制台输出,关闭主窗口 被按下了

python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法

本文主要讲解了python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法,了解更多相关文章请查看下面的相关链接

Python 相关文章推荐
Python遍历目录的4种方法实例介绍
Apr 13 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
python3获取两个日期之间所有日期,以及比较大小的实例
Apr 08 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
Dec 07 Python
python 调用钉钉机器人的方法
Feb 20 Python
python中的decimal类型转换实例详解
Jun 26 Python
python3 enum模块的应用实例详解
Aug 12 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 Python
python 数据分析实现长宽格式的转换
May 18 Python
如何在vscode中安装python库的方法步骤
Jan 06 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
Feb 26 #Python
python实现全排列代码(回溯、深度优先搜索)
Feb 26 #Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 #Python
python 使用递归回溯完美解决八皇后的问题
Feb 26 #Python
基于Python数据结构之递归与回溯搜索
Feb 26 #Python
深度学习入门之Pytorch 数据增强的实现
Feb 26 #Python
Python基于Dlib的人脸识别系统的实现
Feb 26 #Python
You might like
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
php socket通信简单实现
2016/11/18 PHP
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
基于javascipt-dom编程 table对象的使用
2013/04/22 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
JSON遍历方式实例总结
2015/12/07 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
Vue.js实现分页查询功能
2020/11/15 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
对于Python的Django框架部署的一些建议
2015/04/09 Python
python中for语句简单遍历数据的方法
2015/05/07 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
numpy返回array中元素的index方法
2018/06/27 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
财务经理的岗位职责
2013/12/17 职场文书
餐饮加盟计划书
2014/01/10 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
让人感觉高大上的讲话稿怎么写?
2019/07/08 职场文书
python异步的ASGI与Fast Api实现
2021/07/16 Python
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android