事件处理示例(2)-PyQt

让我们尝试一些更有趣的东西,

1)键盘产生的事件

在执行程序之前,让我们尝试了解代码的关键点。这将有助于我们了解事件,信号和时段的性质。让我们一一研究它们:

  • 这里使用一个简单的窗口作为界面。

  • keyPressEvent(),这只是PyQt框架中的预定义函数;用于定义所生成按键事件的功能。请注意,您无法更改其功能名称;您可以根据需要定义其参数内容和函数主体。

  • e.key()== QtCore.Qt.Key_Escape在keyPresssEvent()函数下使用。在这里,key_Escape用来表示我们将要生成的事件的键是Escape键。

  • self.close()-每当按下Escape键时,此函数将用于关闭程序。

源代码:

import sys

from PyQt4 import QtGui, QtCore

class Body(QtGui.QWidget):    

    def __init__(self):

        super(Body, self).__init__()

        self.initializeUI()

        

    def initializeUI(self):      

        self.setGeometry(400, 400, 250, 150)

        self.setWindowTitle('keyboard-Event handler')

        self.show()

        

    def keyPressEvent(self, e):

        if e.key() == QtCore.Qt.Key_Escape:

            self.close()

        

def main():

    

    app = QtGui.QApplication(sys.argv)

    e = Body()

    sys.exit(app.exec_())

if __name__ == '__main__':

    main()

输出结果


每当您运行程序时,都会弹出此非常简单的窗口。之后,您只需要按Escape键即可;并且程序将关闭,导致GUI窗口也关闭。为了更好地理解,请尝试按其他键,您将不会获得任何视觉响应。

2)Slider产生的事件

现在,让我们尝试了解第二个程序的代码。考虑到我们只关注关键部分:

  • lcd = QtGui.QLCDNumber()函数已用于启动LCD编号显示。

  • slide = QtGui.QSlider(QtCore.Qt.Horizontal,self)用于实例化水平滑块小部件。

  • QVBoxLayout()函数用于实例化可视BOX(一种主窗口小部件)。

  • box.addWidget(lcd)和box.addWidget(slide)用于将滑块和LCD Number小部件添加到VBOX布局。

  • 与LCD显示器一起作为参数传递的slide.valueChanged.connect(lcd.display)函数,以将显示器与滑块移动连接起来。

源代码:

import sys

from PyQt4 import QtGui, QtCore

class Body(QtGui.QWidget):

    def __init__(self):

        super(Body, self).__init__()

        self.initializeUI()

        

    def initializeUI(self):

        

        lcd = QtGui.QLCDNumber(self)

        slide = QtGui.QSlider(QtCore.Qt.Horizontal, self)

        box = QtGui.QVBoxLayout()

        box.addWidget(lcd)

        box.addWidget(slide)

        self.setLayout(box)

        slide.valueChanged.connect(lcd.display)

        

        self.setGeometry(300, 300, 250, 150)

        self.setWindowTitle('Slider Signal')

        self.show()

        

def main():

    app = QtGui.QApplication(sys.argv)

    e = Body()

    sys.exit(app.exec_())

if __name__ == '__main__':

    main()

输出结果


运行程序时将弹出此布局窗口。向右或向左移动滑块时,LCD值将相应改变。您可以通过两种方式执行此操作:a。)左键单击滑块指针并将其向右或向左拖动。b。)按键盘上的向左或向右键。

结论:

最后,我将得出结论,有多个小部件,它们以多种方式创建事件。但是处理它们的信号和时隙需要相当类似的努力。到目前为止,我们已经研究了五个有用的事件处理示例。还有更多要去的地方。保持练习。询问何时遇到麻烦,并发表您的创作和发现。
下一篇文章稍后会吸引您。快乐的学习!

以上是 事件处理示例(2)-PyQt 的全部内容, 来源链接: utcz.com/z/315862.html

回到顶部