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 28 Python
Python3读取文件常用方法实例分析
May 22 Python
Python实现比较两个文件夹中代码变化的方法
Jul 10 Python
Python制作爬虫采集小说
Oct 25 Python
详解Python验证码识别
Jan 25 Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 Python
详解从Django Allauth中进行登录改造小结
Dec 18 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
Mar 10 Python
基于Python计算圆周率pi代码实例
Mar 25 Python
PyQT5 实现快捷键复制表格数据的方法示例
Jun 19 Python
如何表示python中的相对路径
Jul 08 Python
如何在python中实现线性回归
Aug 10 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的常用命令
2006/10/09 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
jquery 使用简明教程
2014/03/05 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
jQuery实现的简单歌词滚动功能示例
2019/01/07 jQuery
jQuery实现动态操作table行
2020/11/23 jQuery
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
Python正确重载运算符的方法示例详解
2017/08/27 Python
python中import reload __import__的区别详解
2017/10/16 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
python进度条显示之tqmd模块
2020/08/22 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
实习报告评语
2014/04/26 职场文书
装修活动策划方案
2014/08/27 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
个人培训总结
2015/03/05 职场文书
入党积极分子党支部意见
2015/06/02 职场文书
《司马光》教学反思
2016/02/22 职场文书
60句有关成长的名言
2019/09/04 职场文书
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers
mysql 排序失效
2022/05/20 MySQL
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers