文档章节

上次被人说TK不好咯,这次给你整个高大上的

上海小胖
 上海小胖
发布于 2019/03/29 06:55
字数 850
阅读 60
收藏 1

python GUI

0.环境

操作系统:Windows

Python版本:3.6.0

1.前言

PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是目前最强大的库之一。

2.效果图

在这里插入图片描述

3.环境安装

3.1 依赖包安装

pip install pyqt5
pip install pyqt5-tools

3.2 图形设计界面工具

同学们如果需要qt的图形设计界面,可以使用Pycharm+Python3+PyQt5+QtDesigner的方式搭建。QtDesigner可以直接拖控件设计ui,非常方便。

搭建方法详见:https://www.jianshu.com/p/094928ac0b73

QtDesigner下载链接:https://download.qt.io/archive/qt/

装完以后效果大概就像下面这样: 在这里插入图片描述

注:Pycharm+Python3+PyQt5+QtDesigner环境搭建有些复杂,笔者也花了不少时间去研究怎么安装。限于篇幅,这里不方便展开来讲。反正还是一句话,要善于使用搜索引擎。

4.PyQt5的基本使用

4.1 hello world

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

在这里插入图片描述

4.2 hello world代码详解

笔者这边来一句句解释一下:

import sys
from PyQt5.QtWidgets import QApplication, QWidget

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

app = QtGui.QApplication(sys.argv)

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

w = QtGui.QWidget()

QWidge控件是一个用户界面的基本控件,它提供了基本的应用构造器。默认情况下,构造器是没有父级的,没有父级的构造器被称为窗口(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()方法能确保主循环安全退出。外部环境能通知主控件怎么结束。

5.弹窗程序实现

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

逻辑大概分为以下两步:

  • 初始化ui(包括窗口位置,大小,图标,点击按钮等)
  • 在初始化ui方法中调用点击事件

6.总结

想要熟练使用PyQt,还是需要深入研究下这个库的使用,笔者这里只是抛砖引玉。

关注公众号「Python专栏」,后台回复:zsxq06,获取本文全套代码。

Python专栏二维码

© 著作权归作者所有

上海小胖
粉丝 16
博文 64
码字总数 84198
作品 0
杨浦
技术主管
私信 提问
加载中

评论(0)

Android之应用首次使用的欢迎界面实例

开篇先把使用的项目(调戏糖宝1.0版本)源码,共享给大家,新手勿喷。UI没有学习,使用的是默认的主题样式,等学习玩UI在做更新吧。此次做这个get一项新技能:安卓.9图片制作。这是原来没有接...

火龙战士
2015/08/06
256
0
用Python和Django实现多用户博客系统——UUBlog

博客园 http://www.cnblogs.com/djangochina/ 又过了一周,把代码整个的优化和完善了一下,也把TBlog更名为UUBlog。这次基本是把上次的整个更新了一下 具体的功能大家可以下载后自己看看 说一...

DjangoChina
2013/06/24
2.1K
3
像脚本小子一样探索Meltdown和Spectre漏洞

meltdown.png 简单介绍 和是危害性的CPU级别的漏洞。一句话简单描述一下它的危害就是:漏洞会造成CPU运作机制上的信息泄露,低权级的攻击者可以通过漏洞来远程泄露(浏览器形式)用户信息或本地...

PcDack
2018/01/12
0
0
BAT的程序员想要跳槽TMD,十几万网友阻止:你还会回来的

如今国内发展迅速,所以会需要很多的人才来填补更多的职位的空缺。如今大学生越来越多,所以每个职位的要求就会相对的高一点,从众多的人才中挑选更好一点的。这样对公司才会更加有发展,也就...

qq_41807409
2018/05/25
0
0
安德HCIE v2.0 全网第一份战报

安德HCIE v2.0第一份战报 于帝都参加HCIE V2.0考试,现把整个过程分享给所有实验室的同学,报考行程、住宿、饮食、考试过程和考试具体内容 出发 9.10分上海到帝都的高铁,“在拥挤的人群中,...

EnderJoe
2014/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基于 Roslyn 实现解析引擎

基于 Roslyn 实现一个简单的条件解析引擎 最近在做一个勋章的服务,我们想定义一些勋章的获取条件,满足条件之后就给用户颁发一个勋章,定义条件的时候会定义需要哪些参数,参数的类型,获取...

osc_mfth2zpa
24分钟前
43
0
将字符串中的字母全部转换为大写字母/小写字母

<script> let str = "Hello World!"; // 将字符串的字符全部转换为小写字符 function lowerCase(str) { let arr = str.split(""); let newStr = ""; //......

osc_xsr0bfp3
25分钟前
40
0
Vue 商城的一些小demo(后台添加商品、前台购物车、本地存储的使用)

demo 商城后台,添加一种商品 <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <!-- 引入vue.js --> <script src="js/vue.js......

osc_h8lo50ya
27分钟前
45
0
Git使用教程

Git使用教程 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是...

osc_c9pkd6zt
27分钟前
49
0
文件夹损坏无法打开如何恢复

问题描述: 目录损坏说明这个文件夹内部结构损坏了。文件夹损坏无法打开如何恢复具体恢复方法可以看正文了解(不格式化的恢复方法)。 工具/软件:极限数据恢复软件 步骤1:先百度搜索并下载...

osc_6mbnx553
28分钟前
50
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部