python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法

所属分类: 脚本专栏 / python 阅读数: 1461
收藏 0 赞 0 分享

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_())

效果图如下:

主窗口居中显示实例

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_())

效果如下:

关闭主窗口实例

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详细使用方法,了解更多相关文章请查看下面的相关链接

更多精彩内容其他人还在看

pandas的qcut()方法详解

这篇文章主要介绍了pandas的qcut()方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

从列表或字典创建Pandas的DataFrame对象的方法

这篇文章主要介绍了从列表或字典创建Pandas的DataFrame对象的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

pandas.DataFrame的pivot()和unstack()实现行转列

这篇文章主要介绍了pandas.DataFrame的pivot()和unstack()实现行转列,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

pandas中的series数据类型详解

这篇文章主要介绍了pandas中的series数据类型详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

pandas 时间格式转换的实现

这篇文章主要介绍了pandas 时间格式转换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

python中时间、日期、时间戳的转换的实现方法

这篇文章主要介绍了python中时间、日期、时间戳的转换的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

pandas进行时间数据的转换和计算时间差并提取年月日

这篇文章主要介绍了pandas进行时间数据的转换和计算时间差并提取年月日,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法

这篇文章主要介绍了详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

python和c语言的主要区别总结

在本篇文章里小编给各位整理了关于python和c语言的主要区别的相关知识帖内容,有需要的朋友们学习阅读下。
收藏 0 赞 0 分享

选择Python写网络爬虫的优势和理由

在本篇文章里小编给各位整理了一篇关于选择Python写网络爬虫的优势和理由以及相关代码实例,有兴趣的朋友们阅读下吧。
收藏 0 赞 0 分享
查看更多