文章目录

  • 1. 综述
    • 1.1 在 IDLE 中开启对 PyQt5 的代码提示功能
    • 1.2 取消文件自动命名全小写
  • 2. UI Designer 可视化设计
    • 2.1 新建工程
    • 2.2 属性编辑器
    • 2.3 将 ui 文件编译为 py 文件
  • *. 参考
  • QTCreater是QT官方的IDE,其功能与Pytharm一样,都是用于开发。
  • 关于QT、QT Creater的安装,详见Python理论之三 —— GUI

1. 综述

1.1 在 IDLE 中开启对 PyQt5 的代码提示功能

进入python安装目录中的dlelib文件夹,比如我的是C:\Users\Username\AppData\Local\Programs\Python\Python39\Lib\idlelib

  1. 打开文件config-extensions.def,修改如下代码,保存退出。其中popupwait表示提示开启的延迟时间,单位是毫秒。
  2. 打开同目录下的文件autocomplete.py,添加如下代码后,保存退出。

1.2 取消文件自动命名全小写

Tool - Option - C++ - File Name - 取消勾选“Lower case file names” .

2. UI Designer 可视化设计

UI Designer是Qt Creator 中内置的可视化设计工具,可大大提高 GUI 应用程序开发的工作效率

2.1 新建工程

在QT Creater中新建一个工程,选择QT下的QT Designer Form

然后是窗体模板选择界面,窗体模板主要有以下 3 种:

  1. Dialog 模板:基于 QDialog 类的窗体,具有一般对话框的特性,如可以模态显示、具有返回值等。
  2. Main Window 模板:基于 QMainWindow 类的窗体,具有主窗口的特性,窗口上有主菜单栏、工具栏、状态栏等。
  3. Widget 模板:基于 QWidget 类的窗体。QWidget 类是所有界面组件的基类,如 QLabel、QPushButton 等界面组件都是从 QWidget 类继承而来的。QWidget 类也是 QDialog 和QMainWindow 的父类,基于 QWidget 类创建的窗体可以作为独立的窗口运行,也可以嵌入到其他界面组件内显示。

以上窗口功能丰富程度依次递增


这里选择最后一个Widget,点击下一步,进入Qt Creator 内置的 UI Designer 里可视化设计窗体。

  1. 窗口左侧是界面设计组件面板,分为多个组,如 Layouts、Buttons、Display Widgets等,界面设计的常用组件都可以在组件面板里找到。
  2. 中间区域是待设计的窗体。如果要将某个组件放置到窗体上,从组件面板上拖动一个组件放到窗体上即可。例如,放一个 Label 组件和一个 PushButton 组件到窗体上。
  3. 位于待设计窗体下方的Action 编辑器用于设计 Action,Signals Slots 编辑器用于可视化地进行信号与槽的关联,后面会介绍其具体使用。
  4. 窗口右上方是对象浏览器,用树状视图显示窗体上各组件之间的布局和包含关系,视图有两列,显示每个组件的对象名称(objectName)和类名称。
  5. 窗口右下方是属性编辑器,显示某个选中的组件或窗体的各种属性及其值,可以在属性编辑器里修改这些属性的值。

然后就可以开始设计窗体,设计完成后,窗体将保存为 .ui 格式的文件。

2.2 属性编辑器

如2.1 节界面图中右下角即属性编辑器,在设计窗体上用鼠标点选一个组件,在属性编辑器里会显示其各种属性,并且可以修改其属性。如下图是QLabel的属性:

  • 最上方显示的文字“label: QLabel”表示这个组件是一个 QLabel类的组件,objectName 是 label .

objectName 是该组件的对象名称,界面上的每个组件都需要一个唯一的对象名称,以便被引用,它是用户自定义的。

  • 属性编辑器的内容分为两列,其中 Property 列是属性的名称,Value 列是属性的值。
  • 属性又分为多个组,表示了类的继承关系,如图中可以看出QLabel 的继承关系是 QObject→QWidget→QFrame→QLabel .

2.3 将 ui 文件编译为 py 文件

要在 Python 里使用这个窗体(.ui 文件),需要使用 PyQt5 的工具软件 pyuic5.exe 将这个 ui 文件编译转换为对应的 Python 语言程序文件。pyuic5.exe 程序位于 Python 安装目录的 Scripts 子目录下,这个路径在安装 Python 时被自动添加到了系统的 PATH 环境变量里,所以可以在cmd中直接执行 pyuic5 命令即可。

  1. .ui 文件所在的文件夹中,新建一个 .bat批处理文件,里面填写一行代码:
pyuic5 -o ui_PyQTProjectP23.py PyQTProjectP23.ui
# 其中 ui_PyQTProjectP23.py 表示 .ui文件生成 .py文件后保存的名字
# PyQTProjectP23.ui就是 .ui文件的名字
  1. 运行该 .bat文件,即可生成对应的 .py文件
  2. 使用Pycharm等IDE打开该 .py 文件

*. 参考

  1. 《Python Qt GUI与数据可视化编程》

Python GUI之PyQT QTCreater专讲相关推荐

  1. wxPython和PyQt谁才是最赞的Python GUI库?

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,Python GUI图形库允许Python程序员很方便的创建完整的.功能键全的GUI用户界面.作为Python开发者,你迟早都会用到 ...

  2. python gui界面设置数据储存在哪里_我整理的一些常用Python库!让你快速记住这些库的用法!建议收藏...

    Python的一大特色是其丰富的模块,基本上只要你能想到的常见的开发需求,都能找到别人已经实现的库直接使用,或者相关工具或则框架来辅助实现.但这对于新人来说也是一个问题:这么多库,我要从哪里学起?怎样 ...

  3. php图形界面框架,python GUI 图形化界面框架的选择

    根据网上资料的显示目前流行的开源python GUI有以下几个 (以下GUI框架适用于应用的GUI,如果采用WEB方式,UI可使用h5相关标签即可,也可以用框架.): PyQt 的介绍 : http: ...

  4. Python GUI界面编程初步 01 - GUI库的特点和选择

    1 Python 的常用GUI库和特点 Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix ...

  5. python gui构造openai api可视化页面

    背景:最近chatgpt很火,前几天也想注册体验一下,一顿操作之后,卡在该国家不支持.最后发现自己的代理开在香港,改在漂亮国就行了.虽然有chatgpt可以用,但是小平是自己封装了一个,我不能输.正好 ...

  6. python gui框架_Python的GUI框架PySide的安装配置教程

    (一)说在前面 Python自带了GUI模块Tkinter,只是界面风格有些老旧.另外就是各种GUI框架了. 之前安装过WxPython,并做了简单的界面.遂最近又重新搜索了一下网上关于Python ...

  7. python的电脑推荐_推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  8. Python GUI编程-了解相关技术[整理]

    Python GUI编程-了解相关技术[整理] 我们可以看到,其实python进行GUI开发并没有自身的相关库,而是借用第三方库进行开发.tkinter是tcl/tk相关,pyGTK是Gtk相关,wx ...

  9. PyQt4 Python GUI窗体应用程序

    目录 目录 前言 软件环境 PyQT简介 Setup PyCharm Setup SIP Setup PyQt4 测试PyQt是否安装成功 常见错误 最后 前言 还是一句老话,公司要什么我就做什么.这 ...

最新文章

  1. Mxnet - Understanding weight shape for Dense Layer MXNET权重参数形状的疑惑(内部设计形式行列谁在前不用管,多个转置运算而已)
  2. leetcode算法题--反转单词前缀
  3. tortoisesvn › prefer local prefer repository
  4. 【SpringMVC】从Fastjson迁移到Jackson,以及对技术选型的反思
  5. JVM统介——Java虚拟机架构
  6. 常见问题_数组索引越界异常
  7. esxi虚机启动慢的问题
  8. cvtcolor python opencv_13行代码实现:Python实时视频采集(附源码)
  9. 新塘linux启动过程,NUC972调试笔记之NAND分区调整新增
  10. 虚拟局域网软件开源_基于开源AUTOSAR的高级驾驶员辅助系统的设计与实现过程...
  11. 前端——》Layui-下拉多选框拼音模糊匹配
  12. Could not find a version that satisfies the requirement pytz (from django)
  13. 屏幕录制(Giphy Capture)并导出Gif动图
  14. 在Unity中通过NGUI UITexture制作动态聊天表情
  15. 有益视力的食疗方法(转载)
  16. 电脑图片分类管理软件用什么工具,这一款便签工具可以管理图片
  17. 大名鼎鼎的 Linux —— 进程,线程,协程
  18. 读书笔记-真实的诸葛亮-2
  19. u盘一插上计算机就不响应,u盘插上电脑没反应,详细教您修复无法识别u盘问题...
  20. Coursera登不上的全套方法

热门文章

  1. 【日语】日语国际贸易用语
  2. 月薪过万的软件测试工程师,每天都在干什么?
  3. 如何在Odoo创建新数据的时候添加自己的方法 - 重写create方法
  4. python 元组长度_Python 简明教程 ---11,Python 元组
  5. 跳伞能否应对直升机失事
  6. 雷军周鸿祎两冤家喝茶和解
  7. 软件测试行业能干多久?“35岁焦虑“成了多少IT人的梦魇。
  8. 牛逼哄哄的 Git 命令动画演示,一看就懂!
  9. Unity之动画系统的学习(一):场景动画
  10. DoDataExchange(CDataExchange *pDX);