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

来源:脚本之家  责任编辑:小易  

可以0、前言有不少初学者会问,Python 写的程序看起来好丑啊,只能在那个黑黑的框里运行吗?隔壁家的 JS 好像挺好看的,还能有酷炫效果呢…其实呢,术业有专攻,Python 擅长的领域在后台服务器、数据处理、科学计算等方面,以及作为一种工具,搞定各种可以自动化的事情。做界面并不是它的优势项目。但即便如此,本可以靠实力的 Python,偏偏也能靠脸走出一片天。从诞生伊始,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编程领域当中大展身手。而由于 Python 的流行,也从而产生了许多由 Python 结合那些优秀的 GUI 工具集编写的应用程序。今天我们简单分享一些 Python 的图形化界面库及其相关资源,供广大学习者参考。本文涉及的,也是现今主流的 Python 图形化界面主要有以下几种:TkinterPyQtwxPythonPyGTKPySideKivy1、TkinterTkinter 内置于 Python。没错,Tkinter 姓赵。是与 Tk/Tcl 关系最密切的图形库,历史悠久、用户广泛。跨平台运行,windows/macOS/Linux。由于内置,就不用考虑 Python 版本问题了,也算是一大优势。下面是一些 demo:Python发邮件实例,并用Tkinter实现UI-推酷用 Tkinter 编写交互日记系统Tkinter 学习资源:Python GUI编程(Tkinter)-中文教程易佰Introduction to Tkinter-英文教程zetcode官方文档 py2官方文档 py3基于Tkinter的姻缘测试器2、PyQtPyQt 是 Qt 的 Python 版本,Qt 库是最强大的 GUI 库之一,PyQt 有超过620个类以及6000种函数。我想数据已经能表现PyQt的强大了吧!该库适用于 Python2 和 Python3,能在所有桌面平台运行。demo:某大神的仿虾米音乐界面某大神的仿网易云播放器学习资源:官方文档pyqt4 中文文档pyqt4 英文教程pyqt5 英文教程有哪些颜值高的 PyQt/Qt 应用?知乎基于PyQt或PySide开发图形化界面3、wxPythonwxPython 使用 C++ 编写,是目前比较流行的替代 Tkinter 的图形界面,比 Tkinter 重但又比 PyQt 轻。官网上赫然挂着醒目的一句话:Why the hell hasn't wxPython become the standard GUI for Python yet?wxPython 在主流的三大桌面平台都有不错的表现,但目前仅支持 Python2,Python3 需安装 wxPython_phoenix。demo:一个简单的记事本软件python+wxpython 写的音乐播放器学习资源:英文教程官方教程wxpython in actiongithub:ubbn/wxPythongithub:wxWidgets/wxPython4、PyGTKPyGTK 基于 GTK+开发,它提供了一套全面的图形元素创建桌面程序。易用、适合快速原型,许多 Gnome 下的著名应用程序的 GUI 都是使用 PyGTK 实现的,比如 BitTorrent、GIMP和 Gedit。跨桌面平台,但只能在 Python2 上使用,另外该库最后更新日期是 2012 年。demo:PyGTK 做的 Linux Server 管理毕业设计学习资源:英文教程官方文档github:majorsilence/pygtknotebook5、PySide基于 Qt 框架,类似于 PyQt。在 2009 年由 NOKIA 现在由 Riverbank Computing 维护。跨桌面平台,甚至支持 Android 和 Symbian。PySide 有 15 个模块,这些模块提供了强大的工具来处理 GUI,多媒体,XML 文档,网络或数据库。demo:python版弹幕姬学习资源:英文教程Intro to PySide/PyQt:Basic Widgets and Hello,World!Python Central官方教程PySide图形界面开发(一)-bamb00-博客园PySide-Python图形化界面入门教程(一)-ASCII0x03-博客园github:pyside/Examplesgithub:shuge/Qt-Python-Binding-Examples6、KivyKivy 于 2011 年发布,现在依然在不断更新。它最大的优点是不但可以在桌面平台上运行,还可以在移动设备上运行,包括 Android、iOS,甚至是树莓派。而且,Kivy 可以看作许多模块的超集:许多知名的模块如 PyGame、SDL、GStreamer 都是 Kivy 的组成部分。Kivy 的 API更加高级、统一,方便使用。游戏 Deflectouchwww.zgxue.com防采集请勿采集本网。

一:安装PyQt5

GUI库可以用wxpython或着pyqt,还有一个是pygtk。这个看个人爱好。如果不是商业用的话,pyqt还不错,比较方便。数据库组件有很多,像pysqlite,pymssql等等,看你想用什么数据库。比如想用sql

pip install pyqt5

基于文本文档(Markdown)设想好需要的基本需要的表、字段、类型;使用 Rails Migration 随着功能的开发逐步创建表;随着细节功能的开发、需求,逐步增加字段,删除字段,或者调整字段类型;第一个 Release

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

Python GUI开发的库不少.最常用的的也就几个. Tkinter-Tk是Python自带的GUI库,上手简单,做个简单界面基本够用了,但是不够美观,功能不全面. wxPython-开源免费,LINUX和WINDOWS跨平台,界面本地化好

二:PyQt5简单使用

作为Python开发者,你迟早都会用到图形用户界面来开发应用。幸运的是,你有很多选择,python wifi GUI编程百科列举了超过30款跨平台框架,以及Pyjamas这样的,基于谷歌Web Toolkit端口的跨浏览器

#!/usr/bin/python3# -*- coding: utf-8 -*- """Py40.com PyQt5 tutorial In this example, we create a simplewindow in PyQt5. author: Jan Bodnarwebsite: 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_())

C#,python语法并不简单,不光是语法问题,winform有一套绑定机制,开发用户界面很快

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

应用程序的图标

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

#!/usr/bin/python3# -*- coding: utf-8 -*- """py40 PyQt5 tutorial This example shows an iconin the titlebar of the window. author: Jan Bodnarwebsite: py40.com last edited: January 2015""" import sysfrom PyQt5.QtWidgets import QApplication, QWidgetfrom 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类。

显示提示语

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

#!/usr/bin/python3# -*- coding: utf-8 -*- """Py40 PyQt5 tutorial This example shows a tooltip on a window and a button. author: Jan Bodnarwebsite: py40.com last edited: January 2015""" import sysfrom 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_())

运行程序,显示一个窗口

关闭窗口

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

#!/usr/bin/python3# -*- coding: utf-8 -*- """Py40 PyQt5 tutorial This program creates a quitbutton. When we press the button,the application terminates. author: Jan Bodnarwebsite: py40.com last edited: January 2015""" import sysfrom PyQt5.QtWidgets import QWidget, QPushButton, QApplicationfrom 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_())

消息框

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

#!/usr/bin/python3# -*- coding: utf-8 -*- """ZetCode PyQt5 tutorial This program shows a confirmation message box when we click on the closebutton of the application window. author: Jan Bodnarwebsite: zetcode.com last edited: January 2015""" import sysfrom 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按钮,关闭小部件并终止应用程序。否则我们忽略关闭事件。

窗口显示在屏幕的中间

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

#!/usr/bin/python3# -*- coding: utf-8 -*- """Py40 PyQt5 tutorial This program centers a window on the screen. author: Jan Bodnarwebsite: py40.com last edited: January 2015""" import sysfrom 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的基本使用方法请查看下面的相关链接

你好,你这种情况有两种解决办法,说明文档跟随程序,程序直接用相对路径打开说明文档。第二种就是说明文档放在网上,点击帮助按钮直接跳转到该网页内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • python gui库图形界面开发之pyqt5 qt designer工具(qt设计师)详细使用方法及designer ui文件转py文件方法
  • python gui库图形界面开发之pyqt5浏览器控件qwebengineview详细使用方法
  • python gui库图形界面开发之pyqt5线程类qthread详细使用方法
  • python gui库图形界面开发之pyqt5控件qtablewidget详细使用方法与属性
  • python gui库图形界面开发之pyqt5开发环境配置与基础使用
  • python gui库图形界面开发之pyqt5信号与槽基本操作
  • python gui库图形界面开发之pyqt5信号与槽机制、自定义信号基础介绍
  • python gui库图形界面开发之pyqt5动态加载qss样式文件
  • python gui库图形界面开发之pyqt5窗口背景与不规则窗口实例
  • python gui库pyqt5样式qss子控件介绍
  • python gui库pyqt5图形和特效样式qss介绍
  • python gui库图形界面开发之pyqt5拖放控件实例详解
  • python gui库图形界面开发之pyqt5美化窗体与控件(异形窗体)实例
  • python图形开发gui库pyqt5的详细使用方法及各控件的属性与方法
  • python使用pyqt5/pyside2编写一个极简的音乐播放器功能
  • python如何通过pyqt5实现进度条
  • 浅谈pyqt5中异步刷新ui和python多线程总结
  • python gui库图形界面开发之pyqt5中qmainwindow, qwidget以及qdialog的区别和选择
  • python单元测试框架unittest简明使用实例
  • python如何读取和写入excel里面的数据
  • windows系统配置python脚本开机启动的3种方法分享
  • python装饰器的执行过程实例分析
  • 简单了解为什么python函数后有多个括号
  • 对python3 序列解包详解
  • 在pycharm中实现关闭一个死循环程序的方法
  • pymysql的简单封装代码实例
  • 详解python对json中的特殊类型进行encoder
  • python+opencv制作证件图片生成器的操作方法
  • python gui图形界面
  • python开发的gui漂亮吗
  • python 适合做什么开发
  • python 还是Java图形界面
  • python图形化界面开发主要用什么库
  • python gui中怎么将画的图形一步步显示出来
  • 郁闷于Python GUI开发,有没有好的框架
  • 郁闷于Python GUI开发,有没有好的框架
  • 用python和c#哪个开发图形用户界面比较简单 快捷?
  • Python 常用的标准库以及第三方库有哪些
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全vbsdos/bathtahtcpythonperl游戏相关vba远程脚本coldfusionruby专题autoitseraphzonepowershelllinux shellluagolangerlang其它首页pythonpython图形开发gui库pyqt5的详细使用方法及各控件的属性与方法python gui库图形界面开发之pyqt5 qt designer工具(qt设计师)详细使用方法及designer ui文件转py文件方法python gui库图形界面开发之pyqt5浏览器控件qwebengineview详细使用方法python gui库图形界面开发之pyqt5线程类qthread详细使用方法python gui库图形界面开发之pyqt5控件qtablewidget详细使用方法与属性python gui库图形界面开发之pyqt5开发环境配置与基础使用python gui库图形界面开发之pyqt5信号与槽基本操作python gui库图形界面开发之pyqt5信号与槽机制、自定义信号基础介绍python gui库图形界面开发之pyqt5动态加载qss样式文件python gui库图形界面开发之pyqt5窗口背景与不规则窗口实例python gui库pyqt5样式qss子控件介绍python gui库pyqt5图形和特效样式qss介绍python gui库图形界面开发之pyqt5拖放控件实例详解python gui库图形界面开发之pyqt5美化窗体与控件(异形窗体)实例python图形开发gui库pyqt5的详细使用方法及各控件的属性与方法python使用pyqt5/pyside2编写一个极简的音乐播放器功能python如何通过pyqt5实现进度条浅谈pyqt5中异步刷新ui和python多线程总结python gui库图形界面开发之pyqt5中qmainwindow, qwidget以及qdialog的区别和选择python单元测试框架unittest简明使用实例python如何读取和写入excel里面的数据windows系统配置python脚本开机启动的3种方法分享python装饰器的执行过程实例分析简单了解为什么python函数后有多个括号对python3 序列解包详解在pycharm中实现关闭一个死循环程序的方法pymysql的简单封装代码实例详解python对json中的特殊类型进行encoderpython+opencv制作证件图片生成器的操作方法python入门教程 超详细1小时学会python 列表(list)操作方法详解python 元组(tuple)操作详解python 字典(dictionary)操作详解pycharm 使用心得(一)安装和首python strip()函数 介绍python 中文乱码问题深入分析python科学计算环境推荐——anacpython逐行读取文件内容的三种方python中使用xlrd、xlwt操作exce解决python中使用plot画图,图不显示的问题python continue继续循环用法总结详解python中的join()函数的用法对python中plt的画图函数详解python3+pyqt5使用数据库窗口视图浅谈python之新式类如何用python破解wifi密码过程详解基于python log取对数详解python中比较两个列表的实例方法
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved