详解PyCharm+QTDesigner+PyUIC使用教程


Posted in Python onJune 13, 2019

我们在PyCharm安装配置Qt Designer+PyUIC教程中已配置好了PyCharm+QTDesigner+PyUIC环境

这里在此基上我们演示如何使用这些工具,编写一个图形界面程序:

程序主界面上有一个按钮和一个编缉框,点击按钮就在编缉框中显示“你点击了按钮”

一、使用QT Desinger设计程序主界面

2.1 设计界面

在PyCharm中创建一个项目,然后点击“Tools”--“External Tools”--“QTDesinger”打开QT Desinger

详解PyCharm+QTDesigner+PyUIC使用教程

详解PyCharm+QTDesigner+PyUIC使用教程

然后向Form中拖入一个“Push Button”和一个“Text Edit”

详解PyCharm+QTDesigner+PyUIC使用教程

2.2 指定点击事件及其响应函数

在工具栏点击信号-槽编缉按钮----光标移动到“PushButton”按钮上----鼠标左键点击“PushButton”不要松开--拖动光标到Form的任一位置后再松开鼠标左键

详解PyCharm+QTDesigner+PyUIC使用教程

经过上边的操作就出现了如下界面,“pushButton”侧选中“click()”,“Form”侧点击“Edit”

详解PyCharm+QTDesigner+PyUIC使用教程

在上边“Slots”点击绿色“+”按钮,指定click事件的响应函数,名称随意定比如我这里命名为“pushButton_click()”

(我们这里只是指定事件与响应函数的关联关系,函数是还没实现的,后边我们自行实现)

详解PyCharm+QTDesigner+PyUIC使用教程

详解PyCharm+QTDesigner+PyUIC使用教程

这样界面设计和事件关联就完成了,我们下来选择保存,将文件保存到项目的根目录下

详解PyCharm+QTDesigner+PyUIC使用教程

二、使用PyUIC将文件转成python代码

关闭QT Designer回到PyCharm,查看项目,可以看到只有刚才保存的PyQT_Form.ui文件而且该文件在PyCharm是打不开的

我们需要将这个文件转成.py代码才能使用

详解PyCharm+QTDesigner+PyUIC使用教程

选中“PyQT_Form”,在其上点击鼠标右键,到“External Tools”中点击“PyUIC”

详解PyCharm+QTDesigner+PyUIC使用教程

完后再看项目文件,就可以看到多了一个“PyQT_Form.py”,双击查看其内容如下:

详解PyCharm+QTDesigner+PyUIC使用教程

三、实现程序

应该来说我们只要在上边的“PyQT_Form.py”中,将需要的包导入---添加pushButton_click()函数实现代码----实例化Ui_Form类,实现这三步程序应该就差不多了

但是PyQT_Form.py是PyUIC文件按照“PyQT_Form.ui”生成的,如果我们需要去调整PyQT_Form.ui(比如调整按钮位置调整文本框大小,后续调整界面在实际编程中基本是必然需求)

调整完后重新生成PyQT_Form.py时,PyUIC可不会管当前我们已经在PyQT_Form.py中写了什么代码,旧PyQT_Form.py会直接被新PyQT_Form.py覆盖

也就是说,所有逻辑代码我们都不应当写入PyQT_Form.py文件(或者叫不要动PyQT_Form.py文件),我们新建一个文件在里边创建一个子类(MyPyQT_Form)继承PyQT_Form.py中的Ui_Form

3.1 实现代码

在项目中新建一个.py文件,写入如下代码

import sys
from PyQt5 import QtWidgets
from PyQT_Form import Ui_Form

class MyPyQT_Form(QtWidgets.QWidget,Ui_Form):
 def __init__(self):
  super(MyPyQT_Form,self).__init__()
  self.setupUi(self)

 #实现pushButton_click()函数,textEdit是我们放上去的文本框的id
 def pushButton_click(self):
  self.textEdit.setText("你点击了按钮")


if __name__ == '__main__':
 app = QtWidgets.QApplication(sys.argv)
 my_pyqt_form = MyPyQT_Form()
 my_pyqt_form.show()
 sys.exit(app.exec_())

3.2 运行演示

右键选择运行

详解PyCharm+QTDesigner+PyUIC使用教程

运行界面如下

详解PyCharm+QTDesigner+PyUIC使用教程

点击“PushButton”后界面如下

详解PyCharm+QTDesigner+PyUIC使用教程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
wxpython 最小化到托盘与欢迎图片的实现方法
Jun 09 Python
实例Python处理XML文件的方法
Aug 31 Python
Python遍历文件夹和读写文件的实现代码
Aug 28 Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 Python
python 将日期戳(五位数时间)转换为标准时间
Jul 11 Python
使用Tensorflow将自己的数据分割成batch训练实例
Jan 20 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
Tensorflow使用Anaconda、pycharm安装记录
Jul 29 Python
获取CSDN文章内容并转换为markdown文本的python
Sep 06 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
May 21 Python
python实现A*寻路算法
Jun 13 Python
利用Python实时获取steam特惠游戏数据
Jun 25 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
Jun 13 #Python
python之pyqt5通过按钮改变Label的背景颜色方法
Jun 13 #Python
python3.4+pycharm 环境安装及使用方法
Jun 13 #Python
python自动化之Ansible的安装教程
Jun 13 #Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 #Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
Jun 13 #Python
Python语法分析之字符串格式化
Jun 13 #Python
You might like
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
PHP设计模式 注册表模式
2012/02/05 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
2016/10/24 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
python爬取m3u8连接的视频
2018/02/28 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python生成任意频率正弦波方式
2020/02/25 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
Java如何格式化日期
2012/08/07 面试题
软件测试有哪些?什么是配置项?
2012/02/12 面试题
行政副总岗位职责
2014/02/23 职场文书
胡桃夹子观后感
2015/06/11 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技