详解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中使用PDB库调试程序
Apr 05 Python
python实现的jpg格式图片修复代码
Apr 21 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
Jun 29 Python
Python文件和流(实例讲解)
Sep 12 Python
简单实现python收发邮件功能
Jan 05 Python
python如何为创建大量实例节省内存
Mar 20 Python
python实现图片压缩代码实例
Aug 12 Python
Python函数中的可变长参数详解
Sep 12 Python
python模拟点击网页按钮实现方法
Feb 25 Python
Python函数基本使用原理详解
Mar 19 Python
numpy库reshape用法详解
Apr 19 Python
利用matplotlib为图片上添加触发事件进行交互
Apr 23 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将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
解析php5配置使用pdo
2013/07/03 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
浅谈PHP中的
2016/04/23 PHP
Netbeans 8.2与PHP相关的新特性介绍
2016/10/08 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
学习ExtJS accordion布局
2009/10/08 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
2016/08/25 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
Vue3为什么这么快
2020/09/23 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
Python中元组,列表,字典的区别
2017/05/21 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
Python 移动光标位置的方法
2019/01/20 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
北京SQL新华信咨询
2016/09/30 面试题
存储过程和sql语句的优缺点
2014/07/02 面试题
init进程的作用
2012/04/12 面试题
会计电算化专业毕业生自荐信
2013/12/20 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle