PyQt5:事件与信号(16)

原创 2016年06月01日 00:28:48

学习《PyQt4入门指南 PDF中文版.pdf 》笔记

事件

         事件(Events)是GUI程序中很重要的一部分。它由用户或系统产生。当我们调用程序的exec_()方法时,程序就会进入主循环中。主循环捕获事件并将它们发送给相应的对象进行处理。为此,Trolltech引入了信号与槽机制。

信号与槽

         当用户点击一个按钮,拖动一个滑块或进行其他动作时,相应的信号就会被发射。除此之外,信号还可以因为环境的变化而被发射。比如一个运行的时钟将会发射时间信号等。而所谓的槽则是一个方法,该方法将会影响它所连接的信号。在Python中,槽可以是任何可以被调用的对象。

<span style="font-size:14px;">#!/usr/bin/python
# sigslot.py
from PyQt5.QtWidgets import QApplication, QLCDNumber, QSlider, QVBoxLayout
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt

class SigSlot(QtWidgets.QWidget):
    def __init__(self, parent= None):
        QtWidgets.QWidget.__init__(self)
  
        self.setWindowTitle('signal & slot')
        lcd = QLCDNumber(self)
        slider = QSlider(Qt.Horizontal, self)
        
        vbox = QVBoxLayout()
        vbox.addWidget(lcd)
        vbox.addWidget(slider)

        self.setLayout(vbox)
        slider.valueChanged.connect(lcd.display)        
        self.resize(350,  300)


if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    qb = SigSlot()
    qb.show()
    sys.exit(app.exec_())</span>

        在这个示例中,我们创建一个LCD显示器和一个滑块。通过拖动滑块我们可以改变LCD显示器的数字。

         slider.valueChanged.connect(lcd.display)

         这里我们将滑块slider的valueChanged()信号connect(连接)到LCD显示器的display()槽函数上。



版权声明:本文为博主原创文章,未经博主允许不得转载。

PyQt5教程(四)——事件与信号

在这部分教程中我们将探讨在程序内部发生的事件与信号。事件所有的GUI程序都是事件驱动的。事件主要由用户触发,但也可能有其他触发方式:例如网络连接、window manager或定时器。当我们调用QAp...
  • baidu_34045013
  • baidu_34045013
  • 2016年08月05日 21:35
  • 3498

PyQt5:重写事件处理方法(17)

学习《PyQt4入门指南 PDF中文版.pdf 》笔记 PyQt中的事件处理主要依赖重写事件处理函数。 #!/usr/bin/python # escape.py from PyQt5.QtWi...
  • c3060911030
  • c3060911030
  • 2016年06月01日 00:30
  • 941

PyQt5开发与实战源代码

  • 2017年12月28日 09:33
  • 25.35MB
  • 下载

Pyqt5系列(七)-信号与槽机制

信号和槽机制是 QT 的核心机制,要精通 QT 编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方。 在l...
  • zhulove86
  • zhulove86
  • 2016年09月14日 12:01
  • 7279

PyQt5学习笔记06----Qt Designer自定义信号emit及传参

from PyQt5 import QtWidgets,QtCore from untitled import Ui_Form import time class MyWindow(QtWid...
  • a359680405
  • a359680405
  • 2015年04月20日 15:06
  • 16178

Pyqt5系列(八)-自定义信号

PyQt5已经自动定义了很多QT内建的信号。但是在实际的使用中为了灵活使用信号与槽机制,我们可以根据需要自定义signal。可以使用pyqtSignal()方法定义新的信号,新的信号作为类的属性。...
  • zhulove86
  • zhulove86
  • 2016年09月17日 15:13
  • 5568

PyQt5学习笔记05----Qt Designer信号槽

先入一些信号槽的基本介绍: 信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方。它为高层次的事件处理自动生成所需要的附加代码。在我们所熟知的很...
  • a359680405
  • a359680405
  • 2015年04月20日 12:52
  • 19608

PyQt5中文基础教程5 事件和信号

事件和信号 事件 所有的应用都是事件驱动的。事件大部分都是由用户的行为产生的,当然也有其他的事件产生方式,比如网络的连接,窗口管理器或者定时器等。调用应用的exec_()方法时,应用会进入主循环,主循...
  • xfyangle
  • xfyangle
  • 2017年07月11日 01:53
  • 439

pyqt5简单示例

import sys from PyQt5 import QtWidgets,QtCore app=QtWidgets.QApplication(sys.argv) widget=QtWidgets....
  • mengtianwxs
  • mengtianwxs
  • 2018年01月22日 14:10
  • 48

PyQt5教程(一)

在这部分教程中我们将学习PyQt5的一些基本功能一个简单的例子这是一个只显示一个小窗口的简单示例。但我们可以对这个窗口进行一些操作,如调整尺寸,最大化或最小化。这需要编写很多代码,但有人已经完成了这个...
  • baidu_34045013
  • baidu_34045013
  • 2016年08月05日 20:19
  • 3036
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PyQt5:事件与信号(16)
举报原因:
原因补充:

(最多只允许输入30个字)