pyQt事件处理】的更多相关文章

Qt事件处理01 Qt处理事件的第二种方式:"重新实现QObject::event()函数",通过重新实现event()函数,可以在事件到达特定的事件处理器之前截获并处理他们.这种方法可以用来覆盖已定义事件的默认处理方式,也可以用来处理Qt中尚未定义特定事件处理器的事件.当重新实现event()函数时,如果不进行事件处理,则需要调用基类的event()函数 Qt是事件驱动的, 程序每个动作都是由某个事件所触发. Qt事件的类型很多,我们可以通过查看Qt的 manual中的Event S…
在PyQt图形界面中,我们经常要捕获特定事件如鼠标按键按下.鼠标按下等事件以执行特定操作,可以通过重写组件对象的相关事件处理函数来实现相关处理,具体特定事件常用的包括如下: keyPressEvent(): 键盘按下事件 keyReleaseEvent(): 键盘释放事件 mouseDoubleClickEvent(): 鼠标双击事件 mouseMoveEvent(): 鼠标移动事件 mousePressEvent(): 鼠标按下事件 mouseReleaseEvent(): 鼠标释放事件 ti…
图形界面的事件处理是界面操作的核心,经过编写测试程序验证,基本确认PyQt图形界面应用程序的事件处理流程如下: 1.操作系统或其他应用发送消息给应用主程序: 2.应用主程序调用notify将消息队列中的消息分发给图形界面应用的隐藏窗口QWindow对象(详见<PyQt学习遇到的问题:重写notify发送的消息为什么首先给了一个QWindow对象?>): 3.应用主程序调用notify将消息队列中的消息分发到相应的QWidget对象: 4.接收到消息的QWidget部件调用event(QEven…
这个程序虽然小,具备pyqt程序的皱型,可以作为一个模板使用了 #!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QWidget class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(30…
一.项目背景: 看了matplotlib for python developers这本书,基本掌握了在pyqt中显示曲线的做法,于是自己写一个. 二.需求描述: 1)X轴显示时间点,显示长度为1分钟,每一秒钟绘制一个点,X轴长度超过1分钟,则左移1秒刻度,实现动态效果 2)Y轴显示随机变化的数值,1-100 三.准备工作 1环境:python3.3,eric5,pyqt4 四.开始动手: 使用Eric创建新项目: 在设计编码前期主要用到Eric的两个窗口:源码和窗体浏览器,类似delphi.…
# -*- coding: cp936 -*- # -*- coding: cp936 -*- import sys from PyQt4 import QtCore, QtGui   #导入模块 app = QtGui.QApplication(sys.argv)  #创建一个application对象  Python脚本可以通过shell运行,这样我们就可以对程序的启动进行控制. window = QtGui.QWidget()  #QWidget是PyQt4中所有用户接口对象的基类  创建…
一.项目背景: 看了matplotlib for python developers这本书,基本掌握了在pyqt中显示曲线的做法,于是自己写一个. 二.需求描述: 1)X轴显示时间点,显示长度为1分钟,每一秒钟绘制一个点,X轴长度超过1分钟,则左移1秒刻度,实现动态效果 2)Y轴显示随机变化的数值,1-100 三.准备工作 1环境:python3.3,eric5,pyqt4 四.开始动手 : 使用Eric创建新项目: 在设计编码前期主要用到Eric的两个窗口:源码和窗体浏览器,类似delphi.…
# PyQt中的事件处理主要依赖重写事件处理函数来实现 import sys from PyQt4 import QtCore, QtGui class MainWindow(QtGui.QWidget): def __init__(self, parent = None): QtGui.QWidget.__init__(self, parent) self.setWindowTitle('emit') self.resize(250, 150) self.connect(self, QtCor…
在Eric4下用PyQt4编写Python的图形界面程序 转载请注明作者RunningOn 本文是PyQt4的入门教程.网上能搜到其它教程,但我觉得讲得不是很清楚,希望这篇文章对入门者更加有帮助. 先介绍一下PyQt4.Qt4图形库一经发布就好评不断,它在Python下的绑定PyQt4更是让我眼前一亮,不但漂亮,而且开发程序非常方便. 在我看来,PyQt4最大的改进之一是它不再拘泥与各种布局控件了,也就是说,现在写图形界面程序,和VB一样可以直接拖控件到窗口上并随便改变大小和位置了,不再像以前那…
Hello World PyQt与Qt具有极其相似的类族和API,而且不再使用qmake系统和Q_OBJECT宏使得PyQt在没有编译链接时频繁的错误而且代码更加友好. from PyQt4 import QtCore, QtGui import sys if __name__ == '__main__': app = QtGui.QApplication(sys.argv); mainWindow = QtGui.QMainWindow(); mainWindow.setWindowTitle…
PyQt中的事件处理主要以来重写事件处理函数来实现. #!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore class Escape(QtGui.QWidget): def __init__(self, parent = None): QtGui.QWidget.__init__(self) self.setWindowTitle('escape') self.resize(250…
目录 目录 前言 系统软件 GUI的主循环 信号与槽 信号的应用 使用控件类的内建信号 自定义信号 带参数的信号 槽的应用 创建槽 信号和槽的连接 最后 前言 PyQt中的信号和槽,就是一个触发和执行的关系. 系统软件 系统 Win 10 软件 Python 3.4.3 IPython 4.0.0 PyCharm 5 PyQt 4 GUI的主循环 在理解信号和槽之前,首先先了解GUI的实现过程. GUI程具有事件驱动的特性,当一个GUI程序完成了初始化启动后,就会进入一个"服务器式"的…
事件介绍 事件的处理机制非常的复杂,属于PyQt底层的事,不必我们关心,学会使用就行.如果说事件是用来创建窗口,那么信号与槽就是用来对这个控件进行处理.事件属于低级的处理方式,信号与槽是高级的处理方式,一般信号与槽处理不了的问题,再使用事件处理.信号与槽功能强大使用简单但是不能解决所有的问题,事件使用麻烦但是可以处理全部的问题.事件的处理主要是重载类方法,信号与槽的处理主要是绑定.发送以及处理. 事件 重写mousePressEvent,keyPressEvent,paintEvent等方法,最…
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在<第15.17节 PyQt(Python+Qt)入门学习:PyQt图形界面应用程序的事件捕获方法大全及对比分析>介绍了PyQt中各种事件捕获的方法,其实某些特殊情况下,不想对需要捕获事件对象的类进行子类化(如针对Designer中可视部件在界面中布局的对象,子类化后就不能利用Designer直接部署部件),而安装事件过滤方法又麻烦,针对这种情况…
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer中的Graphics View部件是个图形视图部件,对应类为QGraphicsView,其功能不是简单的显示图形,老猿认为这是一种特殊的视图,它与QGraphicsScene配套实现了类似Model/View的架构. 本节不介绍QGraphicsView和QGraphicsScene的所有属性.方法,大家可以参考官方文档,…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 表格部件为应用程序提供标准的表格显示工具,在表格内可以管理基于行和列的数据项,表格中的最大数据项数为总行数和总列数的乘积,另外在表格中可以设置水平和垂直标题. 表格部件对应类为QTableWidget ,QTableWidget 表格部件中的项类型为QTableWidgetItem类.QTableWidget 从QTableView派生的子类,内置默认模型,如果表格展现的应用需要使用自己…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 1.触发编辑项的editItem方法 QTableWidget提供了触发项编辑的方法,调用语法如下: editItem(QTableWidgetItem item) 注意: editItem方法生效必须设置项的标记flags为可编辑 editItem一次只能触发一个项进行编辑,一旦退出编辑状态(如改变焦点),除非再次调用editItem或设置editTriggers触发编辑或打开永久编辑器否则对应…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在树型部件QTreeWidget中,有三种方法触发进行项数据的编辑:editTriggers触发编辑.editItem触发编辑和openPersistentEditor打开持久编辑器. 1.editTriggers触发编辑 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的editTriggers属性以及平台编辑键(platform edit key )>介绍了QA…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 QListView是从QAbstractItemView 派生的类,实现了QAbstractItemView类定义的接口 ,是Model/View架构中的视图类之一,是Qt模型/视图框架的一部分,提供基于模型的的列表模式或图标模式视图. QListView将存储在模型中的项显示为简单的没有父子层次的列表或图标集合,视图不显示水平或垂直标题,若要显示具有水平标题的项目列表,需要改用QTre…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 batchSize属性 该属性是在layoutMode属性设置为Batched时,用于控制每个批量的数量,缺省值为100,可以通过方法batchSize().setBatchSize(int batchSize)来进行访问或设置. layoutMode属性 QListView的layoutMode属性用于控制是否视图中的数据项的排列是立即进行还是延迟进行.对应类型为枚举类型QListView.La…
老猿Python博文目录 老猿Python博客地址 PyQt学习随笔 PyQt(Python+Qt)帮助文档官网及文档下载 PyQt(Python+Qt)学习随笔:PyQt帮助文档导入assistant后离线查阅 随笔分类: 第一部分 Qt Designer控件属性 第二部分 事件捕获方法 第三部分 Model/View相关知识 第四部分 其它 第一部分 Qt Designer控件属性: 控件汇总属性介绍: PyQt(Python+Qt)入门学习:Qt Designer可视化设计界面组件与QWi…
一. 引言 在上节<第15.6节 PyQt5安装与配置>结束了PyQt5的安装和配置过程,本节将编写一个简单的PyQt5应用,介绍基本的PyQt5应用的文件组成及相关工具的使用. 本节的应用是要创建一个简单媒体播放器的界面,但暂不实现真正的播放器相关代码,只是点击时给出提示. 二. 创建工程 在PyCharm中新建MediaPlayer工程,进入界面后只有一个空的工程文件目录: 三. 图形界面设计 1. 通过tools->External Tools->PyQtDesigner打开…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一. 概述 PyQt的图形界面应用中,事件处理类似于Windows系统的消息处理.一个带图形界面的应用程序启动后,事件处理就是应用的主循环,事件处理负责接收事件.分发事件.接收应用处理事件的返回结果,在程序中捕获应用关注的事件触发相关事件处理是良好UI开发的必经之路.那么在PyQt的图形界面应用中,有哪些方法可以捕获事件以进行处理呢?下面我们就来分析一下. 二. 应用层级的事件捕获 2.1.not…
老猿Python博文目录 老猿Python博客地址 按照老猿规划的章节安排,信号和槽之后应该介绍事件,但事件在前面的随笔<PyQt(Python+Qt)实现的GUI图形界面应用程序的事件捕获方法大全及对比分析>已经进行了详细介绍,为了章节的完整性在此将相关内容复制过来. 一. 概述 PyQt的图形界面应用中,事件处理类似于Windows系统的消息处理.一个带图形界面的应用程序启动后,事件处理就是应用的主循环,事件处理负责接收事件.分发事件.接收应用处理事件的返回结果,在程序中捕获应用关注的事件…
在完成UI设计将UI通过PyUic转成Py文件后,由于这个生成的文件每次通过PyUic生成时都会被覆盖,因此应用的主程序必须另外单独编写py文件.需要将UI生成的文件import到主程序的py文件中. 主程序的代码框架包括: 一.import 相关类 包括UI对应的py文件,以及使用到的PyQt相关的模块,具体看应用的情况,但一般要将QtWidgets.QtGui .QtCore 导入,如: from PyQt5 import QtWidgets from PyQt5.QtWidgets imp…
一. 概述 PyQt的图形界面应用中,事件处理类似于Windows系统的消息处理.一个带图形界面的应用程序启动后,事件处理就是应用的主循环,事件处理负责接收事件.分发事件.接收应用处理事件的返回结果,在程序中捕获应用关注的事件触发相关事件处理是良好UI开发的必经之路.那么在PyQt的图形界面应用中,有哪些方法可以捕获事件以进行处理呢?下面我们就来分析一下. 二. 应用层级的事件捕获 2.1.notify方法捕获应用事件 PyQt的事件处理是从应用主程序开始的,在PyQt应用主程序中,真正负责事件…
在PyQt开发图形界面应用时,从QApplication派生的子类重写notify方法后(具体请参考<PyQt学习随笔:通过自定义类重写QApplication的notify方法捕获应用的所有消息>),在事件处理跟踪时,发现所有消息都是先发给一个QWindow对象,但在应用中并没有定义这样的对象.例如应用中重写notify方法如下: class App(QApplication): def notify(self, eventobject: QObject, event: QEvent): &…
在PyQt的组件对象中,都有从QWidget中继承的方法event,而QWidget.event是对QObject类定义的虚拟方法event的实现. event方法的语法: bool event(QEvent e) event方法用于接收发给一个对象的事件,如果事件被识别并处理应该返回True,对于没有被应用识别和处理的事件,需要调用父类的event方法以保证事件的正确处理. 注意: 1.该方法中只能捕获确认是发给对应对象的事件,不能捕获通过该对象转发给上级的事件: 2.通过重写该方法可以捕获对…
PyQt程序通过调用QApplication类的exec_()(sys.exit(app.exec_()) 进入程序主循环,开始处理事件,它从事件队列中获取本地窗口系统事件,将它们转化为 QEvents,然后将转换后的事件发送给 QObjects对象. 在QApplication类中,真正负责事件分发处理的是QApplication类的notify方法(函数),该方法负责向接收者发送事件,返回接收事件对象的处理程序返回的值.请注意,对于发送到任何线程中的任何对象的所有事件,都会调用此方法. 对于…
QEvent类是PyQt5.QtCore中定义的事件处理的基类,事件对象包含了事件对应的参数. <Python & PyQt学习随笔:PyQt主程序的基本框架>介绍了PyQt程序通过sys.exit(app.exec_()) 进入程序主循环,开始处理事件,它从事件队列中获取本地窗口系统事件,将它们转化为 QEvents,然后将转换后的事件发送给 QObjects对象. QObjects 对象通过调用 QObject.event() 函数接收事件,可以通过在子类中重写该函数来定义自己的事…