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 相关文章推荐
python3.3教程之模拟百度登陆代码分享
Jan 16 Python
Python最基本的数据类型以及对元组的介绍
Apr 14 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
windows环境下tensorflow安装过程详解
Mar 30 Python
python多任务及返回值的处理方法
Jan 22 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
Python实现Event回调机制的方法
Feb 13 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
Apr 14 Python
浅谈django 重载str 方法
May 19 Python
将keras的h5模型转换为tensorflow的pb模型操作
May 25 Python
Python IO文件管理的具体使用
Mar 20 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上的memcache和memcached两个pecl库
2010/03/29 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
php实现微信发红包
2015/12/05 PHP
php数组分页实现方法
2016/04/30 PHP
PHP session 会话处理函数
2016/06/06 PHP
jQuery 获取URL参数的插件
2010/03/04 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
原生JS实现小小的音乐播放器
2017/10/16 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
vue el-table实现行内编辑功能
2019/12/11 Javascript
python实现rest请求api示例
2014/04/22 Python
python进程管理工具supervisor使用实例
2014/09/17 Python
python使用TensorFlow进行图像处理的方法
2018/02/28 Python
纯python进行矩阵的相乘运算的方法示例
2019/07/17 Python
使用pandas读取文件的实现
2019/07/31 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
大专生的学习自我评价
2013/12/04 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
鲁冰花观后感
2015/06/10 职场文书
行政复议答复书
2015/07/01 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL