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中比较特别的除法运算和幂运算介绍
Apr 05 Python
Python常见异常分类与处理方法
Jun 04 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
Jul 24 Python
浅谈Python接口对json串的处理方法
Dec 19 Python
Python 获取windows桌面路径的5种方法小结
Jul 15 Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
使用Django实现把两个模型类的数据聚合在一起
Mar 28 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
python 8种必备的gui库
Aug 27 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
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
php cli换行示例
2014/04/22 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
php单链表实现代码分享
2016/07/04 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
php数组和链表的区别总结
2019/09/20 PHP
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
JS实现页面鼠标点击出现图片特效
2020/08/19 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
python实现图片识别汽车功能
2018/11/30 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
Django 外键的使用方法详解
2019/07/19 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
详解python itertools功能
2020/02/07 Python
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
Python如何实现单例模式
2016/06/03 面试题
实习生体会的自我评价范文
2013/11/28 职场文书
聚美优品的广告词
2014/03/14 职场文书
社区食品安全实施方案
2014/03/28 职场文书
募捐倡议书
2014/04/14 职场文书
股东合作协议书
2014/09/12 职场文书
JDBC连接的六步实例代码(与mysql连接)
2021/05/12 MySQL