zoukankan      html  css  js  c++  java
  • PyQt4信号与槽

    事件

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

    信号与槽

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

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import sys
    from PyQt4 import QtGui, QtCore
    
    class SigSlot(QtGui.QWidget):
        def __init__(self, parent = None):
            QtGui.QWidget.__init__(self, parent)
            
            self.setWindowTitle('moonlight poet signal & slot')
            lcd = QtGui.QLCDNumber(self)
            slider = QtGui.QSlider(QtCore.Qt.Horizontal, self)
            
            vbox = QtGui.QVBoxLayout()
            vbox.addWidget(lcd)
            vbox.addWidget(slider)
            
            self.setLayout(vbox)
            self.connect(slider, QtCore.SIGNAL('valueChanged(int)'), 
                         lcd, QtCore.SLOT('display(int)'))
            self.resize(250, 150)
    
    app = QtGui.QApplication(sys.argv)
    ss = SigSlot()
    ss.show()
    sys.exit(app.exec_())

    效果:

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

            self.connect(slider, QtCore.SIGNAL('valueChanged(int)'),
                         lcd, QtCore.SLOT('display(int)'))

    这里我们将滑块的valueChanged()信号连接到LCD显示其的display()槽函数上。连接方法connect有4个参数:信号发送者对象(这里是slider对象),要发射的信号(这里是valueChanged信号),信号的接受者对象(这里是lcd对象),对信号作出响应的槽函数(这里是display函数)。

  • 相关阅读:
    阅读笔记--- 04
    站立会议--06个人进度
    站立会议--05 个人
    站立会议---04个人
    场景分析
    站立会议---03个人
    站立会议---02 个人进度
    计算某一天距离今天多少天,多少小时,多少分钟
    改变图片颜色
    手动调整导航控制器中的viewcontroller
  • 原文地址:https://www.cnblogs.com/moonlightpoet/p/5343317.html
Copyright © 2011-2022 走看看