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中sets模块的用法实例
Sep 30 Python
Python实现可自定义大小的截屏功能
Jan 20 Python
基于Django用户认证系统详解
Feb 21 Python
PYTHON基础-时间日期处理小结
May 05 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
Sep 25 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
Python 使用Numpy对矩阵进行转置的方法
Jan 28 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
Feb 20 Python
Python如何输出整数
Jun 07 Python
Python基础教程之输入输出和运算符
Jul 26 Python
python中常用的数据结构介绍
Jan 12 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
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
阻止子元素继承父元素事件具体思路及实现
2013/05/02 Javascript
JavaScript的递归之递归与循环示例介绍
2013/08/05 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
JavaScript编写的网页小游戏,很给力
2017/08/18 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
Vue根据条件添加click事件的方式
2019/11/09 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
python基础教程之自定义函数介绍
2014/08/29 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
上海中网科技笔试题
2012/02/19 面试题
铭立家具面试题
2012/12/06 面试题
网络技术专业求职信
2014/02/18 职场文书
yy婚礼主持词
2014/03/14 职场文书
经营理念口号
2014/06/21 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
悬空寺导游词
2015/02/05 职场文书
导游词之桂林
2019/08/20 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
Mysql忘记密码解决方法
2022/02/12 MySQL