python图形开发GUI库pyqt5的基本使用方法详解

一:安装PyQt5

pip install pyqt5

如果你的系统没有安装pip请阅读我们的另一篇文章 windows下python安装pip方法详解

二:PyQt5简单使用

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
Py40.com PyQt5 tutorial 

In this example, we create a simple
window in PyQt5.

author: Jan Bodnar
website: py40.com
last edited: January 2015
"""

import sys

#这里我们提供必要的引用。基本控件位于pyqt5.qtwidgets模块中。
from PyQt5.QtWidgets import QApplication, QWidget

if __name__ == '__main__':
  #每一pyqt5应用程序必须创建一个应用程序对象。sys.argv参数是一个列表,从命令行输入参数。
  app = QApplication(sys.argv)
  #QWidget部件是pyqt5所有用户界面对象的基类。他为QWidget提供默认构造函数。默认构造函数没有父类。
  w = QWidget()
  #resize()方法调整窗口的大小。这离是250px宽150px高
  w.resize(250, 150)
  #move()方法移动窗口在屏幕上的位置到x = 300,y = 300坐标。
  w.move(300, 300)
  #设置窗口的标题
  w.setWindowTitle('Simple')
  #显示在屏幕上
  w.show()

  #系统exit()方法确保应用程序干净的退出
  #的exec_()方法有下划线。因为执行是一个Python关键词。因此,exec_()代替
  sys.exit(app.exec_())

上面的示例代码在屏幕上显示一个小窗口。

python图形开发GUI库pyqt5的基本使用方法详解

应用程序的图标

应用程序图标是一个小的图像,通常在标题栏的左上角显示。在下面的例子中我们将介绍如何做pyqt5的图标。同时我们也将介绍一些新方法。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
py40 PyQt5 tutorial 

This example shows an icon
in the titlebar of the window.

author: Jan Bodnar
website: py40.com
last edited: January 2015
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon

class Example(QWidget):

  def __init__(self):
    super().__init__()

    self.initUI() #界面绘制交给InitUi方法

  def initUI(self):
    #设置窗口的位置和大小
    self.setGeometry(300, 300, 300, 220)
    #设置窗口的标题
    self.setWindowTitle('Icon')
    #设置窗口的图标,引用当前目录下的web.png图片
    self.setWindowIcon(QIcon('web.png'))    

    #显示窗口
    self.show()

if __name__ == '__main__':
  #创建应用程序和对象
  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_()) 

前面的例子是在程序风格。Python编程语言支持程序和面向对象编程风格。Pyqt5使用OOP编程。

class Example(QWidget):

  def __init__(self):
    super().__init__()
    ...

面向对象编程有三个重要的方面:类、变量和方法。这里我们创建一个新的类为Examle。Example继承自QWidget类。

python图形开发GUI库pyqt5的基本使用方法详解

显示提示语

在下面的例子中我们显示一个提示语

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
Py40 PyQt5 tutorial 

This example shows a tooltip on
a window and a button.

author: Jan Bodnar
website: py40.com
last edited: January 2015
"""

import sys
from PyQt5.QtWidgets import (QWidget, QToolTip,
  QPushButton, QApplication)
from PyQt5.QtGui import QFont  

class Example(QWidget):

  def __init__(self):
    super().__init__()

    self.initUI()

  def initUI(self):
    #这种静态的方法设置一个用于显示工具提示的字体。我们使用10px滑体字体。
    QToolTip.setFont(QFont('SansSerif', 10))

    #创建一个提示,我们称之为settooltip()方法。我们可以使用丰富的文本格式
    self.setToolTip('This is a <b>QWidget</b> widget')

    #创建一个PushButton并为他设置一个tooltip
    btn = QPushButton('Button', self)
    btn.setToolTip('This is a <b>QPushButton</b> widget')

    #btn.sizeHint()显示默认尺寸
    btn.resize(btn.sizeHint())

    #移动窗口的位置
    btn.move(50, 50)    

    self.setGeometry(300, 300, 300, 200)
    self.setWindowTitle('Tooltips')
    self.show()

if __name__ == '__main__':

  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())

运行程序,显示一个窗口

python图形开发GUI库pyqt5的基本使用方法详解

关闭窗口

关闭一个窗口可以点击标题栏上的X。在下面的例子中,我们将展示我们如何通过编程来关闭窗口。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
Py40 PyQt5 tutorial 

This program creates a quit
button. When we press the button,
the application terminates. 

author: Jan Bodnar
website: py40.com
last edited: January 2015
"""

import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication
from PyQt5.QtCore import QCoreApplication

class Example(QWidget):

  def __init__(self):
    super().__init__()

    self.initUI()

  def initUI(self):        

    qbtn = QPushButton('Quit', self)
    qbtn.clicked.connect(QCoreApplication.instance().quit)
    qbtn.resize(qbtn.sizeHint())
    qbtn.move(50, 50)    

    self.setGeometry(300, 300, 250, 150)
    self.setWindowTitle('Quit button')
    self.show()

if __name__ == '__main__':

  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())

python图形开发GUI库pyqt5的基本使用方法详解

消息框

默认情况下,如果我们单击x按钮窗口就关门了。有时我们想修改这个默认的行为。例如我们在编辑器中修改了一个文件,当关闭他的时候,我们显示一个消息框确认。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
ZetCode PyQt5 tutorial 

This program shows a confirmation
message box when we click on the close
button of the application window. 

author: Jan Bodnar
website: zetcode.com
last edited: January 2015
"""

import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication

class Example(QWidget):

  def __init__(self):
    super().__init__()

    self.initUI()

  def initUI(self):        

    self.setGeometry(300, 300, 250, 150)
    self.setWindowTitle('Message box')
    self.show()

  def closeEvent(self, event):

    reply = QMessageBox.question(self, 'Message',
      "Are you sure to quit?", QMessageBox.Yes |
      QMessageBox.No, QMessageBox.No)

    if reply == QMessageBox.Yes:
      event.accept()
    else:
      event.ignore()    

if __name__ == '__main__':

  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())

我们关闭窗口的时候,触发了QCloseEvent。我们需要重写closeEvent()事件处理程序。

reply = QMessageBox.question(self, 'Message',
  "Are you sure to quit?", QMessageBox.Yes |
  QMessageBox.No, QMessageBox.No)

我们显示一个消息框,两个按钮:“是”和“不是”。第一个字符串出现在titlebar。第二个字符串消息对话框中显示的文本。第三个参数指定按钮的组合出现在对话框中。最后一个参数是默认按钮,这个是默认的按钮焦点。

if reply == QtGui.QMessageBox.Yes:
  event.accept()
else:
  event.ignore() 

我们处理返回值,如果单击Yes按钮,关闭小部件并终止应用程序。否则我们忽略关闭事件。

python图形开发GUI库pyqt5的基本使用方法详解

窗口显示在屏幕的中间

下面的脚本显示了如何在屏幕中心显示窗口。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
Py40 PyQt5 tutorial 

This program centers a window
on the screen. 

author: Jan Bodnar
website: py40.com
last edited: January 2015
"""

import sys
from PyQt5.QtWidgets import QWidget, QDesktopWidget, QApplication

class Example(QWidget):

  def __init__(self):
    super().__init__()

    self.initUI()

  def initUI(self):        

    self.resize(250, 150)
    self.center()

    self.setWindowTitle('Center')
    self.show()

  #控制窗口显示在屏幕中心的方法
  def center(self):

    #获得窗口
    qr = self.frameGeometry()
    #获得屏幕中心点
    cp = QDesktopWidget().availableGeometry().center()
    #显示到屏幕中心
    qr.moveCenter(cp)
    self.move(qr.topLeft())

if __name__ == '__main__':

  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_()) 

QtGui,QDesktopWidget类提供了用户的桌面信息,包括屏幕大小。

本篇文章只是简单示范pyqt5的基本使用方法更详细的使用方法请查看我们的另一篇文章 python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法

更多关于python图形开发GUI库pyqt5的基本使用方法请查看下面的相关链接

时间: 2020-02-14

python3使用pyqt5制作一个超简单浏览器的实例

我们使用的是QWebview模块,这里也主要是展示下QWebview的用法. 之前在网上找了半天的解析网页的内容,都不是很清楚. 这是核心代码: webview = Qwebview() webview.load(Qurl('http://www.cnblogs.com/Blaxon/')) webview.show() 完整代码(代码是拿的别的代码改得): from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.Q

Python3+Pycharm+PyQt5环境搭建步骤图文详解

搭建环境: 操作系统:Win10 64bit Python版本:3.7 Pycharm:社区免费版 一.Python3.7安装 下载链接:官网https://www.python.org/downloads/windows/或腾讯软件中心下载https://pc.qq.com/detail/5/detail_24685.html或其他站点下载.我下载的是python-3.7.0-amd64. 下载到安装包后打开,如果想安装到默认路径(C盘)的话一直点下一步就可以了,或者自定义安装到其他分区,我的

Python PyQt5标准对话框用法示例

本文实例讲述了Python PyQt5标准对话框用法.分享给大家供大家参考,具体如下: 很全的Qt的标准对话框,包含QInputDialog.QColorDialog.QFontDialog.QMessageBox.QOpenFileDialog... 全部是由官网的C++版本,转换成PyQt5版本. 有些细节忽略了,因为实在不知怎么转换过来.捣鼓了一晚上,总算完成了,好累啊,不过很开心! 效果图: 完整代码: # -*- coding: utf-8 -*- from PyQt5.QtGui i

python3+PyQt5+Qt Designer实现堆叠窗口部件

本文是对<Python Qt GUI快速编程>的第9章的堆叠窗口例子Vehicle Rental用Python3+PyQt5+Qt Designer进行改写. 第一部分无借用Qt Designer,完全用代码实现. 第二部分则借用Qt Designer,快速实现. 第一部分: import sys from PyQt5.QtCore import (Qt) from PyQt5.QtWidgets import (QApplication, QComboBox, QDialog, QDialo

Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法

1.先使用Qt designer设计两个窗口,一个是主窗口,一个是子窗口   其中主窗口是新建-Main Window,子窗口是Dialog窗体. 两个窗口不能是同一类型,否则会崩溃. 并保存为EyeTracking_main.ui和EyeTracking_process.ui(因为我在做眼动追踪,因此窗体命名与此相关,后同),使用UIC工具转成.py文件. 2.写一个驱动函数调用两个窗体 主窗体Eyetracking_main.py from PyQt5 import QtCore, QtGu

python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法

本文主要列出来python图形开发GUI库pyqt5的窗体,控件属性与方法如果你想看看python图形开发GUI库pyqt5的基础使用方法可以查看我们的另一篇文章 python图形开发GUI库pyqt5的基本使用方法详解 基本框架 import sys from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * class Demo(QWidget): def __init__(self):

Python3使用PyQt5制作简单的画板/手写板实例

1.前言 版本:Python3.6.1 + PyQt5 写一个程序的时候需要用到画板/手写板,只需要最简单的那种.原以为网上到处都是,结果找了好几天,都没有找到想要的结果. 网上的要么是非python版的qt程序(要知道qt版本之间差异巨大,还是非同一语言的),改写难度太大.要么是PyQt4的老程序,很多都已经不能在PyQt5上运行了.要么是大神写的特别复杂的程序,简直是直接做出了一个Windows自带的画图版,只能膜拜~ 于是我只能在众多代码中慢慢寻找自己需要的那一小部分,然后不断地拼凑,不断

Python PyQt5实现的简易计算器功能示例

本文实例讲述了Python PyQt5实现的简易计算器功能.分享给大家供大家参考,具体如下: 这里剩下计算函数(self.calculator)未实现,有兴趣的朋友可以实现它 [知识点] 1.利用循环添加按钮部件,及给每个按钮设置信号/槽 2.给按钮设置固定大小:button.setFixedSize(QtCore.QSize(60,30)) 3.取事件的的发送者(此例为各个按钮)的文本: self.sender().text() [效果图] [源代码] import sys from PyQt

关于python pyqt5安装失败问题的解决方法

前言 最近在工作中遇到一个问题,python pyqt5在安装的时候居然提示失败了,无奈只能找解决的办法,发现网上有同样遇到这个问题的同学,所以就总结了解决的方法分享出来,下面话不多说了,来一起看看详细的介绍: 发现问题 以前装命令都是pip一条命令搞定,会自动安装依赖的库,但在安装pyqt5时却遇到了问题 在下载完pyqt5时,会提示找不到合适的SIP版本 Could not find a version that satisfies the requirement sip>=4.19 (fr

Python3 安装PyQt5及exe打包图文教程

环境: Python 3.6.4 + Pycharm Professional 2017.3.3 + PyQt5 + PyQt5-tools ① Python 3 安装 Python 3.x 安装时,默认勾选ADD Python 3.6 to PATH和ADD Python to environment variables的情况下,系统会向path中增加以下两个环境变量. D:\Program Files\Python36\Scripts\; D:\Program Files\Python36\

Windows10 64位安装MySQL5.6.35的图文教程

1. 下载MySQL Community Server 5.6.35 下载地址http://dev.mysql.com/downloads/mysql/5.6.html 2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下.我放在D:\Program Files\MySQL\ 添加环境变量(个人认为只需要添加到用户变量就好,系统变量尽量不要去修改) 变量名:MYSQL_HOME 变量值:D:\Program Files\MySQL 即为mysql的自定义解压目录. 再在Pat

在win10系统下安装Mysql 5.7.17图文教程

操作系统win10  MySQL为官网下载的64位zip解压缩Community版本. 因为想要在公司电脑上安装Mysql,于是到官网上下载了最新版本的Mysql-5.7.17,首先通过网上教程进行安装,解压,然后在C盘新建了一个Mysql0104目录(作为Mysql的安装目录),将解压过后Mysql-5.7.17文件夹中的内容拷贝至安装目录Mysql中. 文件内容如下: 之后按照网上攻略:以管理员身份运行命令行窗口,mysqld -install 安装mysql:这一步理论不会有什么问题 正常

windows下安装Python和pip终极图文教程

本文希望提供傻瓜式的教程,能够令读者成功安装Python和pip. 第一步,我们先来安装Python,博主选择的版本是最新的3.4.2版本.windows下面的Python安装一般是通过软件安装包安装而不是命令行,所以我们首先要在Python的官方主页上面下载最新的Python安装包.下载地址是:https://www.python.org/downloads/ 在下载完成之后,一直点击下一步就OK了.在安装完成之后,打开控制台,输入"Python",我们能够看到下面的效果: 原因很简

MySQL 5.7 版本的安装及简单使用(图文教程)

MySQL 5.7版本的安装使用详细教程 写得还是比较详细,甚至有些繁琐,有很多步骤在其他的教程文档里都是省略掉的,但是我还是要写出来,因为我当时走了很多弯路,我希望你们能够避免我走的这些弯路.当然,知道同学的可以略过,选择你想知道的地方看. 因为看到mysql5.7加入了新特性documentation 所以重新安装了一下mysql5.7版本的,顺便把步骤贴一贴 (一)下载: 官网下载. 步骤:[Downloads–>Community–>MySQL on Windows–>MySQL

VirtualBox 虚拟机中安装 Ubuntu 12.04(图文教程)

距离ubuntu最新版发布已经差不多半年了,博主近来对linux系统有了兴趣,奈何资金不足无法购置一台新机来安装ubuntu.所以想到了虚拟机.下面介绍了VirtualBox 虚拟机中安装 Ubuntu 12.04. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

基于openstack安装部署私有云详细图文教程

本文主要分享的是云计算.openstack的使用.私有云平台建设.云服务器云硬盘的构建和使用.从基本概念入手到私有云建设,信息量非常大.对于openstack的安装部署都是从官方文档中一步步的介绍,内容非常详细. 一.云计算 基本概念 云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源.云是网络.互联网的一种比喻说法.过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象.因此,云计算甚至

Linux下安装mysql-5.6.4 的图文教程

在开始安装前,先说明一下mysql-5.6.4与较低的版本在安装上的区别,从mysql-5.5起,mysql源码安装开始使用cmake了,因此当我们配置安装目录./configure --perfix=/.....的时候和以前的会有些区别,这点我们稍后会提到. 一:解压缩mysql-5.6.4-m7-tar.zip 1>  unzip mysql-5.6.4-m7-tar.zip   会生成mysql-5.6.4-m7-tar.gz的压缩文件 2> tar -zxvf mysql-5.6.4-

Windows下安装PHP单元测试环境PHPUnit图文教程

1.按照常规下载 php 的zip包和配置好 php.ini,这里的例子使用的是 E:\php 2.把你的 php 目录加入系统环境变量 path 中 3.开始 运行 输入 cmd,然后切换到你的 php 目录,我当前的就是 E:\php 4.输入 go-pear.bat 首先脚本会询问是把 pear 安装为系统范围的还是本地拷贝,这里我们默认选择系统,直接回车即可 5.这时显示当前的路径配置,并询问你是否修改,我们保持默认依然回车即可,回车后脚本就会开始自动安装 pear 库了 6.安装的时候

Windows下安装Apache 2.2.21图文教程

本文详细介绍了在Windows平台上安装Apache的过程,希望对初次安装Apache的朋友有所帮助. 1. 软件准备 我们以Apache2.2.21版本为例 Apache 官方下载地址:httpd-2.2.21-win32-x86-no_ssl.msi 2. 开始安装 双击httpd-2.2.21-win32-x86-no_ssl.msi开始安装.出现安装欢迎界面. 图1 欢迎界面 直接点"Next"继续,出现授权协议. 图2 授权协议 选择"I accept the te

Win2003 IIS 安装方法 图文教程

一般大家先安装好win2003系统,图文教程 Win2003 服务器系统安装图文教程要通过控制面板来安装.具体做法为: 1. 进入"控制面板". 2. 双击"添加或删除程序". 3. 单击"添加/删除 Windows 组件". 4. 在"组件"列表框中,双击"应用程序服务器". 5. 双击"Internet 信息服务(IIS)". 6. 从中选择"万维网服务"及&qu