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的Django框架中的QuerySets
Apr 20 Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
Apr 24 Python
python使用socket进行简单网络连接的方法
Apr 29 Python
Python+Opencv识别两张相似图片
Mar 23 Python
Python连接phoenix的方法示例
Sep 29 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
Nov 14 Python
python 移除字符串尾部的数字方法
Jul 17 Python
python集合比较(交集,并集,差集)方法详解
Sep 13 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 Python
Python3爬虫中Selenium的用法详解
Jul 10 Python
python 实现客户端与服务端的通信
Dec 23 Python
Flask使用SQLAlchemy实现持久化数据
Jul 16 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
2016/04/01 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
Python中str.join()简单用法示例
2018/03/20 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
幼儿园消防安全制度
2014/01/26 职场文书
竞聘书怎么写,如何写?
2014/03/31 职场文书
食品安全演讲稿
2014/09/01 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
2015年教研员工作总结
2015/05/26 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript
python flask开发的简单基金查询工具
2021/06/02 Python
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers