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中的True,False条件判断实例分析
Jan 12 Python
Python最长公共子串算法实例
Mar 07 Python
机器学习经典算法-logistic回归代码详解
Dec 22 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
python 对类的成员函数开启线程的方法
Jan 22 Python
使用Python的Turtle绘制哆啦A梦实例
Nov 21 Python
pytorch 模型的train模式与eval模式实例
Feb 20 Python
python 通过邮件控制实现远程控制电脑操作
Mar 16 Python
Python读取excel文件中带公式的值的实现
Apr 17 Python
python有几个版本
Jun 17 Python
Python Unittest原理及基本使用方法
Nov 06 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
mysql+php分页类(已测)
2008/03/31 PHP
php中防止伪造跨站请求的小招式
2011/09/02 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
PHP 快速排序算法详解
2014/11/10 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
微信小程序url与token设置详解
2017/09/26 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
简单了解python变量的作用域
2019/07/30 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
如何开发安全的AJAX应用
2014/03/26 面试题
新郎新娘婚礼答谢词
2014/01/11 职场文书
单位绩效考核方案
2014/05/11 职场文书
交通事故赔偿起诉书
2015/05/20 职场文书
检讨书范文
2019/04/16 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS