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基础教程之Filter使用方法
Jan 17 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
django限制匿名用户访问及重定向的方法实例
Feb 07 Python
Python文本统计功能之西游记用字统计操作示例
May 07 Python
python实现雨滴下落到地面效果
Jun 21 Python
Django uwsgi Nginx 的生产环境部署详解
Feb 02 Python
MNIST数据集转化为二维图片的实现示例
Jan 10 Python
python判断链表是否有环的实例代码
Jan 31 Python
opencv python在视屏上截图功能的实现
Mar 05 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 Python
keras topN显示,自编写代码案例
Jul 03 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/06/07 PHP
优化PHP代码技巧的小结
2013/06/02 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
2016/11/01 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
requireJS模块化实现返回顶部功能的方法详解
2017/10/16 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
了解重排与重绘
2019/05/29 Javascript
解决Vue打包上线之后部分CSS不生效的问题
2019/11/12 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
js实现贪吃蛇游戏(简易版)
2020/09/29 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
Python中针对函数处理的特殊方法
2014/03/06 Python
基于python绘制科赫雪花
2018/06/22 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
keras 多gpu并行运行案例
2020/06/10 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
学生手册家长评语
2014/02/10 职场文书
公益广告标语
2014/06/19 职场文书
2014年网管工作总结
2014/12/11 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang