PyQt5 Qt Designer (Qt设计师)


本文由 Luzhuo 编写,转发请保留该信息.
原文: https://blog.csdn.net/Rozol/article/details/87705426


PyQt5是对Qt所有类进行封装, Qt能开发的东西, PyQt都能开发.
Qt是强大的GUI库之一, 用C++开发, 并且跨平台.
PyQt双许可证, 要么选择GPL(自由软件协议)将代码开源, 要么选择商业许可交商业许可费.
PySide拥有LGPL 2.1授权许可, 可开发 免费开源软件 和 私有商业软件. 把PyQt5代码切换到PySide2代码是相当容易的, 这也是为什么选择学习PyQt5的原因
个人推荐学习PyQt5可以先通过 zetcode (翻译版) 快速入门, 然后再通过查阅 Qt官方文档 进行详细的学习.

准备工作

  • 安装PyQt5: pip install pyqt5
  • 安装Qt工具: pip install pyqt5-tools
  • 配置Qt工具系统环境变量: Path=C:\Code\Python_Vir\python1\Lib\site-packages\pyqt5_tools

Qt Designer (Qt设计师)

强大的可视化GUI设计工具, 帮助我们快速开发PyQt.
它生成UI界面为.ui文件, 通过命令将.ui转为.py文件.

1.启动Qt Designer

命令执行designer, 便会弹出以下界面

最常用的就是创建 Widget(通用窗口) 和 MainWindow(主窗口), 这里我们创建一个 MainWindow.

下面简单介绍下主要功能:

文件保存为xxx.ui文件, 可以用文本及编辑打开编辑, 其数据是XML格式的.

2.将xxx.ui文件转为xxx.py文件

通过以下命令行执行, 即可生成 designer_demo.py 文件

pyuic5 -o designer_demo.py designer_demo.ui

3.运行布局文件

导入并继承它

from designer_demo import Ui_MainWindow
class MyDesiger(QMainWindow, Ui_MainWindow):

编写以下代码, 放在designer_demo.py同文件夹下, 运行即可

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication
from designer_demo import Ui_MainWindowclass MyDesiger(QMainWindow, Ui_MainWindow):def __init__(self, parent=None):super(MyDesiger, self).__init__(parent)self.setupUi(self)if __name__ == "__main__":app = QApplication(sys.argv)ui = MyDesiger()ui.show()sys.exit(app.exec_())

控件箱简介

  • Layouts 布局 (选中控件 -> Lay out(右键) -> 选择布局)

    • Vertical Layout: 垂直布局
    • Horizontal Layout: 水平布局
    • Grid Layout: 网格布局 (划分为 行 和 列)
    • Form Layout: 表单布局 (左列标签, 右列控件)
  • Containers 容器
    • Group Box
    • Scroll Area
    • Tool Box
    • Tab Widge
    • Stacked Widget
    • Frame: 帧容器, 可放入布局 / 控件等
    • Widget: 窗口容器
    • MDI Area
    • Dock Widget
  • Item Widgets 条目控件
    • List Widget: 列表条目
    • Tree Widget: 树形条目
    • Table Widget: 标签页条目
  • Spacers 间隔(透明)
    • Horizontal Spacer: 水平间隔
    • Vertical Spacer: 垂直间隔
  • Buttons 按钮
    • Push Button: 按钮
    • Tool Button: 工具箱按钮 (…)
    • Radio Button: 单选框
    • Check Box: 多选框
    • Command Link Button:
    • Dialog Button Box: Dialog 按钮 (ok | cancel)
  • Input Widgets 输入控件
    • Combo Box: 下拉框
    • Font Combo Box: 字体下拉框
    • Line Edit: 行文本编辑框
    • Text Edit: 文本编辑框
    • Plain Text Edit: 文本编辑框
    • Spin Box: 选择整数值
    • Double Spin Box: 选择浮点数值
    • Time Edit: 时间选择框
    • Data Edit: 日期选择框
    • Data/Time Edit: 日期 时间 选择框
    • Dial: 圆形滚动表盘
    • Horizontal Scroll Bar: 水平滚动条
    • Vertical Scroll Bar: 垂直滚动条
    • Horizontal Slider: 水平拖动条
    • Vertical Slider: 垂直拖动条
    • Key Sequence Edit: 按键编辑框
  • Display Widgets 显示控件
    • Label: 标签 (显示文字 / 图片等)
    • Text Browser: 文本浏览(不可编辑)
    • Graphics View: 绘画
    • Calendar Widget: 日历
    • LCD Number: LCD数字显示屏
    • Progress Bar: 进度条
    • Horizontal Line: 水平线
    • Vertical Line: 垂直线
    • OpenGL Widget: OpenGl

控件属性简介

  • objectName: 控件对象名
  • geometry: 相对坐标(px) x,y,width,height
  • sizePolicy: 控件大小策略
    • Fixed: 控件有 sizeHint 尺寸且尺寸不变
    • Minimum: 控件有 sizeHint 最小尺寸, 尺寸可变大
    • Maximum: 控件有 sizeHint 最大尺寸, 尺寸可变小
    • Preferred: 控件有 sizeHint 期望尺寸, 有minisizeHint最小尺寸, 尺寸可变大
    • Expanding: 控件有 minisizeHint 最小尺寸, 希望更大尺寸
    • MinimumExpanding: 控件有 sizeHint 最小尺寸, 希望更大磁村
    • Ignored: 无视 sizeHint 和 minisizeHint, 按默认设置
  • minimumSize: 最小尺寸
  • maximumSize: 最大尺寸 (固定尺寸: minimumSize=maximumSize)
  • font: 字体
  • cursor: 光标
  • windowTitle: 窗口标题
  • WindowsIcon: 窗口图标
  • iconSize: 图标大小
  • toolTip: 提示泡提示信息
  • statusTip: 状态栏提示信息
  • text: 控件文本
  • shortcut: 快捷键
  • horizontalSpacer: 水平间距

信号(signal)和槽(slot)

PyQt5处理事件有个signal and slot机制, 事件触发产生信号(signal), 当信号发送(emit())时, 连接的槽(slot)便会执行.

信号与槽的连接

sender.signal.connect(receiver.slot)# 例子
btn.clicked.connect(self.buttonClicked)

快速连接伙伴 (信号槽)

按F4选择 Edit Signal/Slot 模式 -> 鼠标按住控件1拖拽到控件2上松开 -> 弹出对话框, 选择两边连接事件 -> ok -> 按F3切换回 Edit Widgets 模式

演示:

菜单栏

菜单栏通过双击 Type Here 添加一级菜单(File), 点开一级菜单双击 Type Here 添加动作(New File), 若点了后面的+, 并添加动作(Text File), 则动作(New File)将变成子菜单.

并且我们可以在 动作编辑器 里修改 菜单里的动作

加载资源文件

1.加载资源

直接上动态图吧

2.使用资源

Label控件拖到窗口上 -> 属性设置pixmap

3.编译成可执行代码

除了需要把.ui文件转成.py文件外, 还需要把.qrc文件转成.py文件

pyrcc5 app.qrc -o app.py

代码处理

import app
self.label.setPixmap(QtGui.QPixmap(":/pic/designer1.png"))

Python PyQt5 Qt Designer (Qt设计师)相关推荐

  1. python -- PyQt5(designer)中文详细教程(一)Qt的基本功能

    在介绍PyQt5中文详细教程前,如有需要安装PyQt5的同学可以在此 PyQt5安装详细教程_M_Q_T的博客-CSDN博客参考安装,里面有详细的安装内容. 下一章内容python -- PyQt5( ...

  2. QT在VS环境下双击*.ui打不开Qt designer(Qt设计师)的解决方法

    今天刚学QT,并在VS2013环境下完成了QT5.6.2的配置. 在VS下,新建Qt GUI Application后,在解决方案资源管理器中双击 *.ui 文件没反应, 网上的解决方法很少,但找到有 ...

  3. python -- PyQt5(designer)基本教程大全

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成. PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台. PyQt5拥有双重 ...

  4. python界面设计资源库_python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法...

    PyQt5 Qt Designer (Qt设计师) PyQt5是对Qt所有类进行封装, Qt能开发的东西, PyQt都能开发. Qt是强大的GUI库之一, 用C++开发, 并且跨平台. PyQt双许可 ...

  5. python图形界面设计代码_python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方...

    PyQt5 Qt Designer (Qt设计师) PyQt5是对Qt所有类进行封装, Qt能开发的东西, PyQt都能开发. Qt是强大的GUI库之一, 用C++开发, 并且跨平台. PyQt双许可 ...

  6. distiller的另一个实例正忙于启动_PYQT5学习(02):利用Qt Designer制作第一个窗口程序

    目标 利用Qt Designer设计窗口界面 使用PyUIC把Qt Designer生成的UI文件转换为py文件 使用转换生成的py文件 创建项目 启动启动pycharm并创建项目 这一环节在这里就不 ...

  7. Qt Designer入门教程 初学者必看

    在Linux下,一个非常流行的RAD工具就是Qt Designer.它是嵌入式公司 Trolltech的Qt软件包的一个组成部分. Qt Designer入门教程 初学者必看是本文要介绍的内容,不说这 ...

  8. Qt使用Qt Designer进行界面设计

    上一章我们使用代码直接进行界面设计,这一章我们使用Qt Designer进行界面设计,简单直接,所见即所得,大大提高了工作效率,特别是对于复杂界面. 1熟悉Qt Designer Qt Designe ...

  9. python qtdesigner 提升类_python3+PyQt5+Qt Designer实现扩展对话框

    本文是对<Python Qt GUI快速编程>的第9章的扩展对话框例子Find and replace用Python3+PyQt5+Qt Designer进行改写. 第一部分无借用Qt D ...

最新文章

  1. ds1302模块 树莓派_(16)给树莓派B+ 安装一个实时时钟芯片DS1302
  2. 今天刚刚开通了写播客的功能,以后记录工作学习的点点滴滴
  3. Oracle RAC集群体系结构
  4. 故障模块名称kernelbase.dll_西门子PLC数字量DI扩展模块1221一级总代理
  5. 36--斐波那契数列
  6. LeetCode算法入门- Remove Element -day20
  7. 电子信息工程这个专业学的是什么内容,就业怎么样?
  8. multiply 和 dot 的区别
  9. ios ipad适配_安卓和iOS的APP在开发时有哪些区别?
  10. 华为交换机console telnet 配置
  11. 金山词霸 [2009牛津版] 金山词霸pdf插件
  12. excel不同文件表格批量加表头vba_多个excel表格自动汇总|如何把两个文件表格用VBA从另一个EXCEL表格导入数据到这个表格中?...
  13. rabbit 的使用方法
  14. Spark中资源与任务的关系
  15. 解决Word2019使用卡顿问题
  16. 音乐播放器(网页手机版)使用Jquery插件
  17. ALM算法(增广拉格朗日法)
  18. java (基础、框架)思维脑图
  19. 51单片机C语言程序100例分析(1)IO+C语言+头文件
  20. 【推荐】智慧油田数字化油井智能入侵监测井口控制系统解决方案合集(共83份,884M)

热门文章

  1. 大数据架构之Hadoop生态圈
  2. Thymeleaf模板入门(三)
  3. 迁移学习——理论分析文献
  4. 软件工程面向对象部分作业题目及参考答案
  5. powerpoint2010插入在线视频
  6. Ajax技术详解(一)
  7. 10小时带你零基础学习大气污染模式(WRF、CMAQ、SMOKE、WRF-chem、CAMX)
  8. 张翰开豪车出街 黑衣墨镜似霸道总裁
  9. pom.part.lock (没有那个文件或目录)
  10. 交大oj-1012-增长率问题 C++ 总结