新手·ing 发表于 2017-7-13 15:53:22

《零基础入门学习Python课堂笔记》PyQt5篇

PyQt5简介:

PyQt5 是Digia的一套Qt5与python绑定的应用框架,同时支持2.x和3.x。本教程使用的是3.x。Qt库由Riverbank Computing开发,是最强大的GUI库之一 ,官方网站:www.riverbankcomputing.co.uk/news。

PyQt5是由一系列Python模块组成。超过620个类,6000和函数和方法。能在诸如Unix、Windows和Mac OS等主流操作系统上运行。PyQt5有两种证书,GPL和商业证书。

PyQt5类分为很多模块,主要模块有:

QtCore 包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用。
QtGui 包含了窗口系统、事件处理、2D图像、基本绘画、字体和文字类。
QtWidgets
QtMultimedia
QtBluetooth
QtNetwork
QtPositioning
Enginio
QtWebSockets
QtWebKit
QtWebKitWidgets
QtXml
QtSvg
QtSql
QtTest
QtWidgets类包含了一系列创建桌面应用的UI元素。 QtMultimedia包含了处理多媒体的内容和调用摄像头API的类。 QtBluetooth模块包含了查找和连接蓝牙的类。 QtNetwork包含了网络编程的类,这些工具能让TCP/IP和UDP开发变得更加方便和可靠。 QtPositioning包含了定位的类,可以使用卫星、WiFi甚至文本。 Engine包含了通过客户端进入和管理Qt Cloud的类。 QtWebSockets包含了WebSocket协议的类。 QtWebKit包含了一个基WebKit2的web浏览器。 QtWebKitWidgets包含了基于QtWidgets的WebKit1的类。 QtXml包含了处理xml的类,提供了SAX和DOM API的工具。 QtSvg提供了显示SVG内容的类,Scalable Vector Graphics (SVG)是一种是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式(这句话来自于维基百科)。 QtSql提供了处理数据库的工具。 QtTest提供了测试PyQt5应用的工具。

这些就是为了让你感受到PyQt5的厉害而已,,,看看就行,,,



本帖将展示PyQt5最基本的例子,

代码来源于网络,楼楼也是入门

import sys
from PyQt5.QtWidgets import QApplication, QWidget


if __name__ == '__main__':

    app = QApplication(sys.argv)

    w = QWidget()
    w.resize(250, 150)
    w.move(300, 300)
    w.setWindowTitle('Simple')
    w.show()

    sys.exit(app.exec_())
运行上面的代码,能展示出一个小窗口。下面是每行代码的讲解。

import sys
from PyQt5.QtWidgets import QApplication, QWidget

这里引入了PyQt5.QtWidgets模块,这个模块包含了基本的组件。

app = QApplication(sys.argv)

每个PyQt5应用都必须创建一个应用对象。sys.argv是一组命令行参数的列表。Python可以在shell里运行,这个参数提供对代码控制的功能。

w = QWidget()

QWidget空间是一个用户界面的基本空间,它提供了基本的应用构造器。默认情况下,构造器是没有父级的,没有父级的构造器被称为窗口(window)。

w.resize(250, 150)

resize()方法能改变控件的大小,这里的意思是窗口宽250px,高150px。

w.move(300, 300)

move()是修改控件位置的的方法。它把控件放置到屏幕坐标的(300, 300)的位置。注:屏幕坐标系的原点是屏幕的左上角。

w.setWindowTitle('Simple')

我们给这个窗口添加了一个标题,标题在标题栏展示(虽然这看起来是一句废话,但是后面还有很多栏,还是要注意一下,多了就蒙了)。

w.show()

show()能让控件在桌面上显示出来。控件在内存里创建,之后才能在显示器上显示出来。

sys.exit(app.exec_())

最后,我们进入了应用的主循环中,事件处理器这个时候开始工作。主循环从窗口上接收事件,并把事件传入到派发到应用控件里。当调用exit()方法或直接销毁主控件时,主循环就会结束。sys.exit()方法能确保主循环安全退出。外部环境能通知主控件怎么结束。

exec_()之所以有个下划线,是因为exec是一个Python的关键字。

程序预览:
**** Hidden Message *****

cngrand 发表于 2017-7-14 07:45:25

谢谢

新手·ing 发表于 2017-7-14 07:48:04

cngrand 发表于 2017-7-14 07:45
谢谢

终于来人了

gopythoner 发表于 2017-7-14 10:08:33

图形界面与函数分离
图形界面的设计不要用代码一行一样的去写,可以用pyQT的设计工具,直接生成代码,这个比较快,而且不容易出错,形成之后再在这个代码基础上修改就好了,反正我每次都是这样做的

新手·ing 发表于 2017-7-14 12:16:14

gopythoner 发表于 2017-7-14 10:08
图形界面与函数分离
图形界面的设计不要用代码一行一样的去写,可以用pyQT的设计工具,直接生成代码,这个 ...

能不能说具体点.

gopythoner 发表于 2017-7-14 13:27:07

新手·ing 发表于 2017-7-14 12:16
能不能说具体点.

pyqt 有个designer工具,在安装目录里面可以直接运行
界面直接在这个工具里面设计好就行,然后一句命令就可以变成py代码
自己去查怎么用吧,神器
我弄的几百行的界面都是这个工具直接转换的,比自己写方便多了

新手·ing 发表于 2017-7-14 15:21:13

gopythoner 发表于 2017-7-14 13:27
pyqt 有个designer工具,在安装目录里面可以直接运行
界面直接在这个工具里面设计好就行,然后一句命令 ...

这个库太厉害了

新手·ing 发表于 2017-7-14 15:29:50

gopythoner 发表于 2017-7-14 13:27
pyqt 有个designer工具,在安装目录里面可以直接运行
界面直接在这个工具里面设计好就行,然后一句命令 ...


是这个吗,怎么用呢

gopythoner 发表于 2017-7-14 16:00:41

新手·ing 发表于 2017-7-14 15:29
是这个吗,怎么用呢

你是pip 安装的么?
如果是的话,可能就用不了,因为我最开始就是用的pip 按照发现有问题,所以换了安装文件按照的,那个版本里面能有一个exe文件,可以直接打开用
那时候我还特意让人给我下载了一个链接发给我的
http://bbs.fishc.com/thread-85987-1-1.html

新手·ing 发表于 2017-7-14 16:06:48

gopythoner 发表于 2017-7-14 16:00
你是pip 安装的么?
如果是的话,可能就用不了,因为我最开始就是用的pip 按照发现有问题,所以换了安装 ...

谢谢

晚晴山 发表于 2017-9-11 22:15:27

哎哎如果有人能够用精彩实例完整展现一下pt5该有多好

和vvv 发表于 2017-10-4 18:37:57

{:10_277:}

新手·ing 发表于 2017-10-4 20:45:30

和vvv 发表于 2017-10-4 18:37


Jackmok 发表于 2017-10-27 10:01:12

我是来学习的

jcconline 发表于 2017-10-30 08:24:58


谢谢

bing_home 发表于 2017-10-30 15:10:35

回复后能评分吗

Bean_Wei 发表于 2017-11-16 15:36:27

参与/回复主题
关闭
RE: 《零基础入门学习Python课堂笔记》PyQt5篇 [修改]

KanameAki 发表于 2017-11-16 16:24:21

感谢分享

土豆丝 发表于 2017-11-16 17:03:02

查看内容!

manning120008 发表于 2017-11-17 19:53:11

厉害了我的哥。正是我想要的。
页: [1] 2 3
查看完整版本: 《零基础入门学习Python课堂笔记》PyQt5篇