📜  PyQt5 QSpinBox – 使用 ID 寻找孩子(1)

📅  最后修改于: 2023-12-03 15:33:53.832000             🧑  作者: Mango

PyQt5 QSpinBox – 使用 ID 寻找孩子

在 PyQt5 中,可以使用 findChild() 方法在窗口小部件的子级中查找特定 ID 的小部件。

以下是在 PyQt5 中使用 findChild() 方法查找 QSpinBox 子部件的示例:

spin_box = self.findChild(QSpinBox, 'mySpinBox')

在上面的示例中,我们搜索具有 ID 'mySpinBox' 的 QSpinBox。该方法返回QObject,因此我们需要在QObject上使用QSpinBox强制转换。

spin_box = self.findChild(QSpinBox, 'mySpinBox')
spin_box.setValue(30)

在上面的示例中,我们使用找到的 QSpinBox 设置了初始值。

完整示例代码
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QSpinBox

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        vbox = QVBoxLayout()
        spin_box = QSpinBox(self, objectName='mySpinBox')
        spin_box.setMaximum(100)
        vbox.addWidget(spin_box)
        self.setLayout(vbox)

        spin_box = self.findChild(QSpinBox, 'mySpinBox')
        spin_box.setValue(30)

        self.setGeometry(100, 100, 300, 150)
        self.setWindowTitle('PyQt5 QSpinBox – 使用 ID 寻找孩子')
        self.show()

if __name__ == '__main__':
    app = QApplication([])
    window = MainWindow()
    app.exec_()

在上面的示例中,我们首先创建一个 QSpinBox 并设置其对象名称为 'mySpinBox'。然后,我们使用 findChild() 方法查找具有 ID 'mySpinBox' 的 QSpinBox。最后,我们设置找到的 QSpinBox 的默认值,以便它显示为 30。

该示例显示了如何使用 findChild() 方法在 PyQt5 中查找 QSpinBox 子部件的特定 ID。