Qt连接所有同类部件到同一个槽函数

时间:2024-03-13 22:28:36
void MainWindow::AutoConnectSignals() { // 查找所有 QSpinBox const auto spinBoxes = findChildren<QSpinBox*>(); for (auto *spinBox : spinBoxes) { connect(spinBox, static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &ParameterWidget::SpinBoxValueChanged); } // 查找所有 QDoubleSpinBox const auto doubleSpinBoxes = findChildren<QDoubleSpinBox*>(); for (auto *doubleSpinBox : doubleSpinBoxes) { connect(doubleSpinBox, static_cast<void(QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged), this, &ParameterWidget::SpinBoxValueChanged); } // 查找所有 QLineEdit const auto lineEdites = findChildren<QLineEdit*>(); for (auto *lineEdit : lineEdites) { connect(lineEdit, &QLineEdit::textChanged, this, &ParameterWidget::LineEditTextChanged); } }