吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7033|回复: 24
收起左侧

[Python 原创] PyQt5基础与实际应用(一)环境搭建

  [复制链接]
brujah 发表于 2020-6-5 19:02
本帖最后由 brujah 于 2020-6-8 18:51 编辑

[TOC]

前言

很久以前就想静下心来写一些自己感兴趣的小项目,希望能沉淀一下自己这些年所掌握的知识。事实上独立开发者在国内一直很难做起来,但能拥有一款独立产品我觉得可能是大部分开发者会引以为豪的事情。本系列严格意义上来讲不算是教程,只是记录自己在开发这个系列的所思所考,过程会尽可能详细记录,但我认为过于基础的东西并不会深入讲解。项目涉及到的源码会在文章底部放出。

工欲善其事必先利其器

  • 已安装 Python3.8.2 的 Windows 10 电脑:性能不用太好,能看岛国动作影视作品就行
  • PyCharm 2020.1.1 (Professional Edition):有钱的用正版,没钱的用社区版,没脸没皮的用破解版
  • 一个能访问 Baidu/Google 的浏览器
  • Python 官方文档地址(现已加入豪华中文大餐):https://docs.python.org/zh-cn/3/
  • PyQt5 官方文档地址(整站不超过26个字母):https://doc.qt.io/qtforpython/index.html

PyQt5的安装与测试

就像我一个连 QQ 都没有的人是不会告诉你们我是如何拥有一台电脑的一样,在这里我并不会分享如何搞定PythonPycharm的,搞定这两个是你能坚持看下去的前提,记住,最好的两位老师,一个叫搜索,另一个叫动手

Pycharm 中新建一个 PyQt5 的工程

更换 pip 源

如果你不懂科学上网是什么的话,我强烈建议你更换一下pip的源,这个操作将让你的寿命至少增加 30% 以上。快捷键Win + R打开运行复制粘贴%HOMEPATH%后回车,新建文件夹pip并进入,新建文本文档打开并复制下面内容粘贴保存,最后将文本文档改名为pip.ini即可。

[global]
timeout = 6000
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com

其它可选源如下:

豆瓣:https://pypi.doubanio.com/simple/
阿里云:https://mirrors.aliyun.com/pypi/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/

选择工程存放地址

首次打开流程:打开Pycharm->Create New Project->
已创建过项目流程:打开Pycharm->MenuBar->File->New Project ...->
选择Pure Python,在Location:后面选择你要保存的项目地址,你存放的最后一个文件夹名称将作为此次工程的名称,切记!

创建工程

选择或新建好工程目录后,你最好打开一下底下的Project Interpreter:New Vitu...选项,确保选中项是New environment...而不是Existing inter...,因为我们需要用到venv这个工具来确保在本台电脑上,我们不受其它版本的Python影响或是不同版本的第三方库导致的玄学 Bug 。 tips: 在Python3.3及以上版本中的标准库内置了这个模块,你可以把它理解为是一个虚拟的独立的 Python 环境,类似于你脑海中的波多老师,你对虚拟的她做什么,都不会影响到她在现实世界的情况,而在你腻了以后,你还可以创建一个吉泽老师一样...

批注 2020-06-05 160822.png

安装 PyQt5 和相应工具

更新 pip

几飞秒以后(时间长短根据电脑性能会有差异)你就可以看到 Pycharm 的全屏编辑界面,在正式安装 PyQt5 之前,你需要更新一下 pip 。
在 Pycharm 左下角找到Terminal并点击,不出意外的话, Pycharm 会弹出终端对话框,内容如下:

Microsoft Windows [版本 10.0.18363.836]
(c) 2019 Microsoft Corporation。保留所有权利。
(venv) D:\Dev\Learn_PyQt>

注意,当前路径前面一定要有(venv),如果没有,则表示你当前并不处于虚拟环境中,这是你就可以利用上文中提到的一个能访问 Baidu/Google 的浏览器这个工具了...
在路径后输入python -m pip install --upgrade pip进行升级 pip ,一般来说不会遇到什么问题。

安装 PyQt5 和相应工具

还是同一个窗口,输入指令pip install pyqt5后回车:

批注 2020-06-05 162535.png

接着输入指令pip install pyqt5-tools并回车:

批注 2020-06-05 162841.png

如果你的 pip 源中PyQt5的版本高于pyqt5-tools的版本,安装过程中会卸载掉高版本,所以你其实可以直接安装pyqt5-tools来完成这两步操作。

利用 Qt Designer 来构建我们的第一个界面

找到 Qt Designer

让我们把视角转移到 Pycharm 的左侧,打开Project工程管理器,依次点开你的工程名文件夹->venv->Lib->site-packages->pyqt5_tools->Qt->bin,然后找到designer.exe文件,鼠标右键它选择 Show in Explorer,这个工具是 Qt 为了让程序开发人员少掉点头发,把公司每天 8 小时交给业务逻辑就赶紧下班的好东西。其实就是可视化界面编辑器,让你不用写代码就可以完成一个界面的设计。

批注 2020-06-05 164703.png

配置 Qt Designer

Qt Designer 打不开?

当你满心欢喜的双击它以后是不是给你一个“This application failed to start because no Qt platform...”的弹窗报错,不要急,这是虚拟环境的路径导致的问题。在designer.exe文件的同级目录找到platforms文件夹,将其改名为platforms.old,当然,你也可以删除它,但作为一个快秃头的老程序猿给你个忠告,你要重视备份任何你需要修改的文件...

返回designer.exe文件的上一级目录,也就是bin的同级目录,找到plugins文件夹进入,拷贝其中的platforms文件夹粘贴至刚才的designer.exe文件的同级目录,再双击试试?

批注 2020-06-05 165733.png

uic 打不开?

这个问题其实在你第一次转换或预览代码的时候都不会遇到,但是简单配置一下可以保证你之后的掉头发过程愉快而轻松,那何乐而不为呢?
uic是 Qt 提供的将界面文件xxx.ui转成xxx.pyxxx.h文件的命令工具,我们来先创建一个主窗体来尝试触发这个错误。

新建 Main Window

在引导窗选择Main Window然后点击Create就创建完成...

触发报错

MenuBar->Form->View Python Code...,此时会弹窗提示“Unable to launch 路径xxx ... 系统找不到指定的文件。”

解决报错

如果你对刚才的文件路径还有印象的话你应该知道是什么问题了,让我们在designer.exe文件的同级目录找到uic.exe文件并复制它,还是这一级目录新建文件夹bin,将uic.exe文件粘贴进去,再试一次?

批注 2020-06-05 171127.png

完成界面设计的两种方式

Qt Designer的弱智操作

在 Qt Designer 左侧的Widget Box中拖动一个Label和一个Push Button空间到中间的窗体内,这样我们就完成了一个最简单的界面了。

通过MenuBar->Form->Preview...或者快捷键Ctrl + R可以预览到这个界面。

炫酷的代码操作

回到 Pycharm 编辑器中,在左侧的工程管理器中的项目名上右键new->Python File,在弹出的输入框内键入app就创建成功了。ps:此处有没有.py都可以, Pycharm 比你想象的要更智能...

键入下面的代码:

carbon.png

纸上得来终觉浅,绝知此事要躬行

  1. 代码为什么弄成图片?因为不希望你复制粘贴直接run一下就感觉自己学会了;
  2. 为什么没有窗口运行的预览图?因为想知道这两种方式运行的窗口有什么差异,你需要自己动手;
  3. 为什么源码要设置下载门槛?因为希望你看着官方文档敲,而不是看着我的代码敲!

下一课:

https%3A//www.52pojie.cn/thread-1196145-1-1.html" title="PyQt5基础与实际应用(二)模块讲解和布局管理">PyQt5基础与实际应用(二)模块讲解和布局管理



app.7z (954 Bytes, 下载次数: 38)

免费评分

参与人数 13吾爱币 +18 热心值 +13 收起 理由
燃香小狼 + 3 + 1 我很赞同!
modys + 1 + 1 热心回复!
一般通过首冲人 + 1 + 1 大佬 !不要断更!!
Laney + 1 谢谢@Thanks!
kaixin365days + 1 + 1 谢谢@Thanks!
虎尼玛 + 1 + 1 谢谢@Thanks!
3a3b + 1 + 1 谢谢@Thanks!
vethenc + 1 + 1 谢谢@Thanks!
hyit110 + 1 + 1 我很赞同!
Abrahams + 1 + 1 谢谢@Thanks!
Zeaf + 1 + 1 我很赞同!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xouou + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

  • · 好帖|主题: 549, 订阅: 87

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xouou 发表于 2020-6-5 19:19
好吧  感谢分享,  打字辛苦了
Zeaf 发表于 2020-6-5 21:24
Abrahams 发表于 2020-6-5 21:54
 楼主| brujah 发表于 2020-6-5 22:00
52的md文档就不能友好一点么…
Loading~ 发表于 2020-6-8 21:53
感谢分享,辛苦
yi猪小伊 发表于 2020-6-9 14:01
本帖最后由 yi猪小伊 于 2020-6-9 14:03 编辑

感谢  谢谢
jscxnet 发表于 2020-6-17 08:37
楼主威武,清晰明了。
klmatao 发表于 2020-6-18 09:38
收听楼主了,我最近在研究tkinter,刚好可以跟你这个一起学习~
wind315_ 发表于 2020-7-14 22:34
这里还可以学习python,好!就是年纪大了,有点学不进了一样
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 09:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表