详解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 相关文章推荐
浅析Python中yield关键词的作用与用法
Nov 29 Python
Python实现压缩和解压缩ZIP文件的方法分析
Sep 28 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
python分数表示方式和写法
Jun 26 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
pandas将list数据拆分成行或列的实现
Dec 13 Python
python 实现客户端与服务端的通信
Dec 23 Python
Python与C/C++的相互调用案例
Mar 04 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之Memcache学习笔记
2013/06/17 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
js Html结构转字符串形式显示代码
2011/11/15 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
python正则实现提取电话功能
2018/02/24 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
python实现彩色图转换成灰度图
2019/01/15 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
为什么python比较流行
2020/06/19 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
Prototype如何更新局部页面
2013/03/03 面试题
新闻编辑求职信
2014/04/09 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
家长对孩子的寄语
2015/02/26 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书