PyQt5:事件与信号(16)

学习《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()槽函数上。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值