📅  最后修改于: 2023-12-03 14:45:50.245000             🧑  作者: Mango
在 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()
方法来获取当前窗口中激活了调用动作的对象。该方法可以使我们在程序开发中更加方便地对对象进行操作。