详解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 Shell获取hostname和fqdn释疑
Jan 25 Python
老生常谈Python序列化和反序列化
Jun 28 Python
python执行使用shell命令方法分享
Nov 08 Python
python 通过logging写入日志到文件和控制台的实例
Apr 28 Python
Python实现输出某区间范围内全部素数的方法
May 02 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
树莓派升级python的具体步骤
Jul 05 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
新手必备Python开发环境搭建教程
May 28 Python
Python Pygame实战之塔防游戏的实现
Mar 17 Python
python实现学员管理系统(面向对象版)
Jun 05 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作的文本留言本的例子(四)
2006/10/09 PHP
自动分页的不完整解决方案
2007/01/12 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
用Simple Excel导出xls实现方法
2012/12/06 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
php数组指针操作详解
2017/02/14 PHP
JavaScript 实现??打印?理
2007/04/28 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
JavaScript DOM事件(笔记)
2015/04/08 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
Java分治归并排序算法实例详解
2017/12/12 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
Python读取csv文件实例解析
2019/12/30 Python
python实现图像外边界跟踪操作
2020/07/13 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
美国Max仓库:Max Warehouse
2020/05/31 全球购物
Python中pass语句的作用是什么
2016/06/01 面试题
2014年单位植树节活动方案
2014/03/23 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
新兵入伍心得体会
2014/09/04 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python