📜  PyQt5 QSpinBox – 获取调用动作的对象(1)

📅  最后修改于: 2023-12-03 14:45:50.245000             🧑  作者: Mango

PyQt5 QSpinBox – 获取调用动作的对象

在 PyQt5 中,我们可以使用 QSpinBox 来创建一个数字调节框,用户可以通过该框来选择一个数字。

在使用 QSpinBox 时,经常需要获取调用该控件的对象,以便于对该对象进行进一步操作。下面将会介绍如何在 PyQt5 中获取 QSpinBox 调用动作的对象。

获取调用动作的对象

在 PyQt5 中,可以通过 sender() 方法来获取当前窗口中激活了调用动作的对象。

sender = self.sender()

在上面的代码中,我们调用 self.sender() 方法,将当前窗口中激活了的对象赋值给 sender 变量。

接下来,我们就可以对 sender 变量进行操作,例如:

if sender == self.spinBox:
    ...

在上面的代码中,我们根据 sender 变量的值判断当前调用的是哪一个对象。在判断之后,我们可以对该对象进行进一步的操作。

完整代码示例

下面是一个完整的示例,我们将在窗口中创建一个 QSpinBox,用户可以通过该框来选择一个数字。当用户改变数字时,程序会输出调用动作的对象。

import sys
from PyQt5.QtWidgets import *


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.spinBox = QSpinBox(self)
        self.spinBox.setGeometry(50, 50, 60, 30)
        self.spinBox.setRange(0, 99)
        self.spinBox.valueChanged.connect(self.onSpinBoxChange)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('QSpinBox')
        self.show()

    def onSpinBoxChange(self):
        sender = self.sender()
        if sender == self.spinBox:
            print('调用动作的对象是 QSpinBox')


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在上述代码中,我们首先创建了一个 QSpinBox,并在窗口中显示出来。然后,我们通过连接 valueChanged 信号和 onSpinBoxChange 槽来实现当用户改变数字时,程序输出当前调用动作的对象。

结论

在 PyQt5 中,我们可以使用 sender() 方法来获取当前窗口中激活了调用动作的对象。该方法可以使我们在程序开发中更加方便地对对象进行操作。