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中元类用法实例
Oct 10 Python
使用python实现rsa算法代码
Feb 17 Python
Python爬取三国演义的实现方法
Sep 12 Python
python 3.5下xadmin的使用及修复源码bug
May 10 Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
Jul 11 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
Python实现Event回调机制的方法
Feb 13 Python
Python容器使用的5个技巧和2个误区总结
Sep 26 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
Oct 23 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 Python
Python之Matplotlib绘制热力图和面积图
Apr 13 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
杏林同学录(三)
2006/10/09 PHP
转PHP手册及PHP编程标准
2006/12/17 PHP
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
JQuery中Ajax的操作完整例子
2017/03/07 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
this.$toast() 了解一下?
2019/04/18 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
Python 深入理解yield
2008/09/06 Python
python将ip地址转换成整数的方法
2015/03/17 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
5款实用的python 工具推荐
2020/10/13 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
新员工欢迎词
2014/01/12 职场文书
销售主管岗位职责
2014/02/08 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
股东授权委托书范本
2014/09/13 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技