3. qtdesinger的使用方法
专栏地址 ʅ(‾◡◝)ʃ
windows 上使用 qtdesigner
找到那个路径直接打开就行了
linux 上使用 qtdesigner
打开 qtcreator 软件
1. 启动软件,新建项目
选择左上角的 文件-新建文件或项目

选择 Qt Designer Form 然后 choose 就可以了

这里我们新建一个 Widget 就可以了, 关于各种控件 我后面的章节会详细的讲解

现在我们终于进入了建好的一个 qt5 widget 窗体界面
这里简单介绍一下 desinger 各个部分的布局作用
- 最左面是 各种控件, 可以通过拖拽到窗体来实现向窗体里面添加 控件
- 中间是简单的窗体
- 中间下方分为俩个选项卡, 一个是动作编辑, 另一个是信号槽的映射关系编辑(具体作用后面讲解)
- 最右边分为上下俩部分,上半部分是窗体的所用控件
- 下半部分是一个控件的各种属性
如果你学习过 VB开发可能便于理解这个开发软件界面
现在你可以 通过拖拽一个按钮来实现向窗体中添加按钮了!
按钮的控件名称 是 Push Button
然后 保存 快捷键 ctrl + s (保存路径在新建项目时设置完了)
2. 转换文件
然后我们找到刚刚保存的 form.ui 在其路径打开终端 运行命令:
pyuic5 form.ui -o form.py
就将 这个 .ui 文件 转换成了 python 文件
但是生成的 这个文件不能用, 因为里面只是一个类, 下面我们来调用这个类, 新建另一个文件中, 开始编码了
from form import Ui_Form
from PyQt5.QtWidgets import *
import sys
# 这里创建了一个类继承了 QWidget 和用 designer 生成的 Ui_Form类
class MyWin(QWidget,Ui_Form):
"""docstring for Mywine"""
def __init__(self):
super(MyWin, self).__init__()
self.setupUi(self) # 这里调用了 生成的代码中的setupUi 有兴趣的同学可以看看生成代码中的 setupUi 方法做了什么
if __name__ == '__main__':
app = QApplication(sys.argv)
mywin = MyWin() # 实例化一个窗口小部件
mywin.setWindowTitle('Hello world!') # 设置窗口标题
mywin.show() #显示窗口
sys.exit(app.exec())
可能你觉得这样反而费事了, 没什么用, 但是如果你的窗体上有各种控件 的时候,你就知道这种设计的好处了, 这种方法叫做,图形界面与业务逻辑分离, 当你更改图形化界面上的逻辑时 你只需要进入 qtdesigner 更改 ui文件, 然后重新生成 py 文件, 而不需要变更代码, 而开发业务逻辑可以都在这个文件中更改, 而不去更改生成 的 py 文件
但是这个程序根本毫无用途, 所以下一节我会讲解 pyqt5 的核心机制: 信号-槽 机制
3. qtdesinger的使用方法的更多相关文章
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- Qt 创建一个QtDesinger第三方控件
1.需要创建一个合适的.pro文件 2.创建一个继承QDesignerCustomWidgetInterface的类,描述控件的一些属性. 函数 描述和返回值 name() 指定控件的名称 group ...
- mapreduce多文件输出的两方法
mapreduce多文件输出的两方法 package duogemap; import java.io.IOException; import org.apache.hadoop.conf ...
- 【.net 深呼吸】细说CodeDom(6):方法参数
本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...
- IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法
直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- ArcGIS 10.0紧凑型切片读写方法
首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...
- [BOT] 一种android中实现“圆角矩形”的方法
内容简介 文章介绍ImageView(方法也可以应用到其它View)圆角矩形(包括圆形)的一种实现方式,四个角可以分别指定为圆角.思路是利用"Xfermode + Path"来进行 ...
- JS 判断数据类型的三种方法
说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...
随机推荐
- [Python]-字典-实践经验总结
字典是Python中常用的一个数据类型. 与列表有相似的用法,表现在列表的下标和字典的键值可以通过相似的方式读取数据: list_name[0] = value dict_name['key'] = ...
- Reactor And Gev 详解 通俗易懂
reactor 详解 在类似网关这种海量连接, 很高的并发的场景, 比如有 10W+ 连接, go 开始变得吃力. 因为频繁的 goroutine 调度和 gc 导致程序性能很差. 这个时候我们可以考 ...
- Python数据科学手册-机器学习:线性回归
朴素贝叶斯是解决分类任务的好起点,线性回归是解决回归任务的好起点. 简单线性回归 将数据拟合成一条直线. y = ax + b , a 是斜率, b是直线截距 原始数据如下: 使用LinearRegr ...
- 使用 EFKLK 搭建 Kubernetes 日志收集工具栈
转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247491992&idx=1&sn=a770252759 ...
- ProxySQL 密码管理
ProxySQL是一个协议感知的proxy.由于ProxySQL基于流量进行路由,当一个客户端连接ProxySQL时,它还无法识别它的目标主机组,因此ProxySQL需要对该客户端进行认证.基于此,需 ...
- Elasticsearch Top10 监控指标
文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484441&idx=1&sn=8292f50 ...
- 17. Fluentd输出插件:out_copy用法详解
copy即复制,out_copy的作用就是将日志事件复制到多个输出,这样就可以对同一份日志做不同类型的分析处理. out_copy内置于Fluentd,无需单独安装. 示例配置 <match p ...
- Opengl ES之四边形绘制
四边形的绘制在Opengl ES是很重要的一项技巧,比如做视频播放器时视频的渲染就需要使用到Opengl ES绘制四边形的相关知识.然而在Opengl ES却没有直接提供 绘制四边形的相关函数,那么如 ...
- Android 使用压缩纹理
本文介绍了什么是压缩纹理,以及加载压缩纹理的核心步骤.并在 Android OpenGLES 平台上实现了压缩纹理的显示. 一.压缩纹理概念 传统的图片文件格式有 PNG . JPEG 等,这种类型的 ...
- display:block 和display:inline-block的区别和用法
1).块状元素:(div,p,form,ul,ol,li) ,独占一行,默认情况width为100% 2).行内块状元素:(span,img,a),不会独占一行,相邻的元素一直排在同一行,排满了才会换 ...