当前位置: 首页 > news >正文

【PyQt】PyQt入门安装和Hello World

PyQt是Python的一个代码库,可以很方便的写出带有界面(GUI)的应用软件。

0 安装Python

既然玩Python,这个Python自然要安装一个了。

安装步骤见我的此文。

1 安装PyCharm

对于新手,个人建议使用 PyCharm 来进行 PyQt 开发。PyCharm 是个高效的Python集成开发工具,该软件有收费版和社区免费版,点击这里下载 社区版即可。(软件包约300M大小)

PyCharm的安装比较简单,此处不提。安装选项见下图,新手全选即可。

2 在PyCharm中配置PyQt环境

这是重点。

很多细节不提,只说明要点。

打开PyCharm,新建项目。

下一步的弹窗中选择【 New Windows】。

然后进入项目的设置界面,按下图操作来安装 pyqt5、pyqt5-tools 、pyqt5desinger软件包。

 输入如下内容(清华大学的镜像网址),下载软件包会更快。

https://pypi.tuna.tsinghua.edu.cn/simple/

然后,开始搜索和安装 pyqt5、pyqt5-tools 、pyqt5desinger软件包。

这些软件包都安装在 当前虚拟环境的 【Lib\site-packages】文件夹下。鼠标右键点击按图操作可找到他们在硬盘上的位置。

 3 在PyCharm中配置工具

为了使用更加方面,我们要配置自定义工具。

3.1 配置QtDesigner

主要用来设计软件界面,并保存为.ui文件。

在 File - Settings 设置界面,按图操作。注意 步骤 2是选择当前项目下的 venv\Lib\site-packages\QtDesigner文件夹内的 designer.exe。步骤3输入的是  $ProjectFileDir$  。

 这样,我们就可以发现在 Tools - External Tools 下多了个  Qt Designer 菜单:

 点击它,就会出现 Qt Designer软件的界面,在这里我们就可以绘制图形窗口的界面。

3.2 配置PyUIC

主要用来把.ui文件编译成.py文件。

和配置 QtDesigner类似。

Program:选择 当前项目下的 venv\Scripts 内的 pyuic5.exe

Arguments:输入   $FileName$ -o $FileNameWithoutExtension$.py

Working :输入  $FileDir$

 安装完成后,我们就可以编写Hello World了。

3 PyQt版的Hello World

3.1 Qt Designer创建窗口

 

 点击 File - Save,保存到 当前项目 的 文件夹内。

可以看到,多了个 .ui 文件。

3.2 编译.ui文件

选中该 .ui 文件,然后 点击 PyCharm 的 Tool - External Tools - PyUIC,会发现又多了个.py文件。

 

 双击 helloworld.py ,可以看到 Python 代码。

接下来,开始写关键代码。

3.3 编写代码

双击打开 helloworld.py 文件,我们在后面追加几行代码。

 代码如下:

import sys
if __name__ == '__main__':
    app =QtWidgets.QApplication(sys.argv)
    mainwindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(mainwindow)
    mainwindow.show()
    sys.exit(app.exec_())

3.4 运行代码

点击左侧 绿色小三角,选择 Run 。

就可以看到 Hello World 的界面了。

 4 其他

接下来,你就可以在 Qt Designer 上练练其它的控件了。试一试吧。

如果你想用 pyqt 写出更炫更实用的软件,你需要了解更多关于 Python 和 Qt 5 的知识。

 

 

相关文章:

  • 怎样创建一个VUE项目(超简单)
  • C++【STL】【queue的使用和模拟实现】【priority_queue的使用和模拟实现】
  • SAP PI PO 接口常见问题处理:在监控器中找不到一个或多个 XI 消息的日志记录
  • L2TP客户端之Strongswan移植(三)
  • matplotlib入门之抛砖引玉
  • java-php-python-springboot携手助学助学交流平台计算机毕业设计
  • Android wifi sniffer log总结分析
  • 山东大学数字图像处理实验(二)
  • linux多个jdk时,java -version显示的版本有错误
  • 【论文笔记】An Image Patch is a Wave: Phase-Aware Vision MLP
  • 【前端升全栈】 五分钟了解Node.js
  • 部署若依springboot-vue前后端分离项目(Nginx反向代理 2022)
  • Kafka 优化问题
  • 【opencv-c++】windows10系统VisualStudio2022配置opencv_contrib-4.6.0
  • windows安装动力学仿真软件Frost并计算cassie机器人运动学和动力学
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【技术性】Search知识
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • C++类中的特殊成员函数
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JAVA之继承和多态
  • JS实现简单的MVC模式开发小游戏
  • js正则,这点儿就够用了
  • Linux各目录及每个目录的详细介绍
  • Node 版本管理
  • React+TypeScript入门
  • Spring声明式事务管理之一:五大属性分析
  • ubuntu 下nginx安装 并支持https协议
  • vue 配置sass、scss全局变量
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 译米田引理
  • 鱼骨图 - 如何绘制?
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • "无招胜有招"nbsp;史上最全的互…
  • (day 12)JavaScript学习笔记(数组3)
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (接口自动化)Python3操作MySQL数据库
  • (六)vue-router+UI组件库
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)Mysql的优化设置
  • (转)Scala的“=”符号简介
  • (转载)Google Chrome调试JS
  • ... 是什么 ?... 有什么用处?
  • .gitignore文件—git忽略文件
  • .libPaths()设置包加载目录
  • .Net Web项目创建比较不错的参考文章
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...