Python按钮的响应事件详解


Posted in Python onMarch 04, 2019
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMainWindow
from test import Ui_MainWindow
from PyQt5.QtWidgets import QFileDialog
class MyPyQT_Form(QMainWindow, Ui_MainWindow):
  def __init__(self):
    super(MyPyQT_Form, self).__init__()
    self.setupUi(self)
  # 实现pushButton_click()函数,textEdit是我们放上去的文本框的id
  def pushButton_click(self):
    #self.showText.setText("你点击了按钮")
    dir_path = QFileDialog.getExistingDirectory(self, "choose directory", r"C:\Users\Administrator\Desktop")
    self.showText.setText(dir_path)
if __name__ == '__main__':
  app = QtWidgets.QApplication(sys.argv)
  my_pyqt_form = MyPyQT_Form()
  my_pyqt_form.show()
  sys.exit(app.exec_())

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

2.1 设计界面

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

Python按钮的响应事件详解

Python按钮的响应事件详解

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

Python按钮的响应事件详解

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

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

Python按钮的响应事件详解

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

Python按钮的响应事件详解

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

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

Python按钮的响应事件详解

Python按钮的响应事件详解

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

Python按钮的响应事件详解

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

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

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

Python按钮的响应事件详解

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

Python按钮的响应事件详解

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

Python按钮的响应事件详解

三、实现程序

应该来说我们只要在上边的“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文件

3.2 运行演示

右键选择运行

Python按钮的响应事件详解

运行界面如下

Python按钮的响应事件详解

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
python3新特性函数注释Function Annotations用法分析
Jul 28 Python
使用pytorch进行图像的顺序读取方法
Jul 27 Python
python3使用QQ邮箱发送邮件
May 20 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
Python中BeautifuSoup库的用法使用详解
Nov 15 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
pandas 强制类型转换 df.astype实例
Apr 09 Python
Python退出时强制运行一段代码的实现方法
Apr 29 Python
学习python需要有编程基础吗
Jun 02 Python
python与pycharm有何区别
Jul 01 Python
Python中三元表达式的几种写法介绍
Mar 04 #Python
Python生成器的使用方法和示例代码
Mar 04 #Python
Python去除字符串前后空格的几种方法
Mar 04 #Python
python调用外部程序的实操步骤
Mar 04 #Python
Python实现的合并两个有序数组算法示例
Mar 04 #Python
python创造虚拟环境方法总结
Mar 04 #Python
Python3爬楼梯算法示例
Mar 04 #Python
You might like
我常用的几个类
2006/10/09 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
JavaScript中void(0)的具体含义解释
2007/02/27 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
Python制作爬虫抓取美女图
2016/01/20 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
python数据封装json格式数据
2018/03/04 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
使用Tkinter制作信息提示框
2020/02/18 Python
python连接mysql有哪些方法
2020/06/24 Python
python基于opencv 实现图像时钟
2021/01/04 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
Python中requests做接口测试的方法
2021/05/30 Python
python实现A*寻路算法
2021/06/13 Python
Java 常见的限流算法详细分析并实现
2022/04/07 Java/Android