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中join和split用法实例
Apr 14 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
Java及python正则表达式详解
Dec 27 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
python如何派生内置不可变类型并修改实例化行为
Mar 21 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
Python 中的lambda函数介绍
Oct 10 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
python中常见错误及解决方法
Jun 21 Python
PyQt QMainWindow的使用示例
Mar 24 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 Mysql编程之高级技巧
2008/08/27 PHP
基于php无限分类的深入理解
2013/06/02 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
Javascript 学习书 推荐
2009/06/13 Javascript
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
朴素贝叶斯算法的python实现方法
2014/11/18 Python
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
python字符串,数值计算
2016/10/05 Python
Python正则表达式分组概念与用法详解
2017/06/24 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
python实现动态数组的示例代码
2019/07/15 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
皮肤科医师岗位职责
2013/12/04 职场文书
房地产财务管理制度
2014/02/02 职场文书
农行心得体会
2014/09/02 职场文书
高中教师个人工作总结
2015/02/10 职场文书
2015年教师节慰问信
2015/03/23 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
房贷工资证明范本
2015/06/12 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
vue3不同环境下实现配置代理
2022/05/25 Vue.js