本人站点

Parksi

PyQt5 简介

PyQt5是Digia的一套Qt5应用框架与Python的结合
Q:有什么好处?
A:有Python的地方就能运行你的软件(有桌面),兼容性较好

安装

你应当准备好Python3.x,并在安装时勾选Add to Path,此选项会将python添加到环境变量,接着用你的软件(pip,pip3或者pycharm等任何方式安装PyQt5

HelloWord!

前言

你已经准备好了一切,开始你的GUI之旅吧!你的程序不再由控制台进行操作,你可以利用GUI达到更高的效率!

主要方法/类/函数

  • QWidget类,这是PyQt的重要类!
  • resize()方法,改变控件大小,接收两个参数(宽,高)
  • move()方法,改变控件位置,接收两个参数(x,y),是坐标,原点为屏幕左上角
  • setWindowTitle()方法,改变控件标题,接收一个参数,字符串(str)
  • show()方法,使控件在内存中创建,显示在桌面上(初始化)

源码

# classes/class1/main.py#!/usr/bin/python3
#-*- coding: utf-8 -*-#以上两行分别代表:使用Python3(Linux下),使用“utf-8”以避免乱码
import  sys
from PyQt5.QtWidgets import QApplication, QWidget
#引入PyQt5.QtWidgets模块if __name__ == '__main__':app = QApplication(sys.argv)#每个PyQt5应用都必须创建一个应用对象。sys.argv是一组命令行参数的列表。# Python可以在shell里运行,这个参数提供对脚本控制的功能。w = QWidget()#QWidge控件是一个用户界面的基本控件,它提供了基本的应用构造器。默认情况下,# 构造器是没有父级的,没有父级的构造器被称为窗口(window)。w.resize(250,150)#resize()方法改变控件的大小,你应该传入两个参数,即宽与高,这里为宽250px,高150pxw.move(300,300)#move()方法能够改变控件的位置,注意!屏幕坐标系的原点在左上角!# 这里将控件移动到(300,3000)位置w.setWindowTitle('HelloWord')#setWindowTitle()方法改变窗口的标题,我们称为标题栏,# 这里修改为“HelloWord”w.show()#将控件在内存中创建,并显示在桌面上(初始化)sys.exit(app.exec_())#保证主控件安全退出,请使用exex_,# 因为exec是Python保留字!

效果

图标

前言

我们的应用已经可以显示出基本的内容了,但是您的软件不应该使用默认的图标,每一个应用都应该拥有属于它自己的图标!那么,我们开始吧!

面向对象

上一个例子我们使用面向过程编程(c语言等),而Python还支持面向对象编程,这一个例子我们将尝试面向对象编程

主要的方法

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

这里我们导入PyQt的两个模块,对于图标,最重要的显然是第二个PyQt5.QtGui
QtWidgets类有一个setWindowIcon方法,我们可以通过如下的方式实现:

self.setWindowIcon(QIcon('icon.jpg'))

创建并给QIcon传入一个图片路径参数(你要用直链我也不拦你)
它将继续作为setWindowIcon的参数!
如果不理解,请配合源码使用!

源码

#!usr/bin/python3
#-*- coding: utf-8 -*-import sys
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtGui import QIconclass My_Icon(QWidget):#创建我们自己的类My_Icon,继承自QWidgetdef __init__(self):super(My_Icon, self).__init__()self.initUI()#调用我们自己的方法initUI()def initUI(self):self.setGeometry(300,300,300,200)#setGeometry()接收四个参数,分别是坐标x,y与窗口长,宽#也就是说setGeometry()实现了resize()和move()的功能!#这里将窗口放置到(300,300),长为300,宽为200self.setWindowTitle('Icon')self.setWindowIcon(QIcon('icon.jpg'))#创建一个QIcon对象,接收一个路径参数self.show()
if __name__ == '__main__':app = QApplication(sys.argv)ex = My_Icon()sys.exit(app.exec_())

效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YLSvh4se-1586503673953)(https://s1.ax1x.com/2020/03/16/8GA4OI.png)]
如果需要更好的阅读体验,请下载源码,使用您的IDE打开!
PyQt的方法都是语义化的,便于理解,但您应该记清楚每一个方法的名字!

目录

回到目录

Python-PyQt5 图形库系列教程 | 简介与HelloWord!相关推荐

  1. Python爬虫学习系列教程

    大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己实际写的一些小爬虫,在这里跟大家一同分享,希望对Python爬虫 ...

  2. Python爬虫学习系列教程-----------爬虫系列 你值的收藏

    静觅 » Python爬虫学习系列教程:http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把 ...

  3. Python 爬虫学习 系列教程

    Python爬虫 --- 中高级爬虫学习路线 :https://www.cnblogs.com/Eeyhan/p/14148832.html 看不清图时,可以把图片保存到本地在打开查看... Pyth ...

  4. python网络爬虫系列教程_Python网络爬虫系列教程连载 ----长期更新中,敬请关注!...

    感谢大家长期对Python爱好者社区的支持,后期Python爱好者社区推出Python网络爬虫系列教程.欢迎大家关注.以下系列教程大纲,欢迎大家补充.视频长期连载更新中 --------------- ...

  5. Python框架Flask系列教程(1)——基础-黄勇-专题视频课程

    Python框架Flask系列教程(1)--基础-4431人已学习 课程介绍         从初级讲解Flask开发网站.涉及到的知识点包括:URL和视图.Jinja2模版.SQLAlchemy数据 ...

  6. python机器学习案例系列教程——K最近邻算法(KNN)、kd树

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 K最近邻简介 K最近邻属于一种估值或分类算法,他的解释很容易. 我们假设一个人的优秀成为设定为1.2.3.4.5.6.7.8.9.10 ...

  7. python机器学习案例系列教程——决策树(ID3、C4.5、CART)

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 决策树简介 决策树算是最好理解的分类器了.决策树就是一个多层if-else函数,就是对对象属性进行多层if-else判断,获取目标属性 ...

  8. python机器学习案例系列教程——GBDT构建新特征

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 GBDT的算法参考:https://blog.csdn.net/luanpeng825485697/article/details/7 ...

  9. python机器学习案例系列教程——最小生成树(MST)的Prim算法和Kruskal算法

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 最小生成树MST 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边. ...

最新文章

  1. java缓存技术选型,重难点整理
  2. 快速增量备份程序 DeltaCopy
  3. C# WinForm 技巧十: 开发工具
  4. centos 对某ip开放 防火墙端口_CentOS7 firewalld防火墙指定IP与端口访问
  5. JDK1.7和JDK1.8对于异常的支持
  6. SQL优化技巧--远程连接对象引起的CTE性能问题
  7. linux 没有 分区表,在Windows下分区,安装linux,分区软件肿么没有linux swap 这个选项?...
  8. DNS服务系列之二:DNS区域传送漏洞的安全案例
  9. 商业信息敏感、安全处理(口令、数字证书-U盾-密保卡、指纹识别-虹膜识别)...
  10. 入门篇:函数计算中角色和访问策略的讲解
  11. 每周荐书:云原生、Docker、Web算法(评论送书)
  12. E - 白银 CSU - 1726: 你经历过绝望吗?两次! 搜索
  13. https方式nginx 代理tomcat访问不带www的域名301重定向跳转到www的域名帮助seo集中权重...
  14. JAVA转大数据的学习之路,就该这样走(内附1T大数据资料)
  15. PPP和PDP激活区别
  16. html写的3d烟花带字幕,Three.js 3D烟花绽放动画
  17. mysql in 分组,基于mysql实现group by取各分组最新一条数据
  18. 校园助手APP--简介及框架
  19. [.NET源码] asp.net中手机版和PC版识别
  20. Unity3d优化总结2

热门文章

  1. 大学计算机课笔记,浙江大学计算机专业课辅导班笔记
  2. php mysql 类库_PHP数据库操作之基于Mysqli的数据库操作类库
  3. jmeter使用教程之验证码登录接口(工作日记)
  4. 本地代码上传到git仓库
  5. 43、几种线性表的介绍及实现
  6. Java进阶——JSON格式了解
  7. C++设计模式——备忘录模式(memento pattern)
  8. 所建不凡——AWS技术峰会2018中国站在上海起航
  9. VR全景图片,探究VR全景图片为何如此受欢迎?
  10. AC日记——[USACO1.1]坏掉的项链Broken Necklace 洛谷 P1203