QT中输入组件名访问UI个组件?

Access UI components in QT by entering the name of the component?

我的 .ui 文件中有很多 ui 组件。

它们具有相似的名称,例如 analogRead0analogRead1analogRead2,并且它们具有相同的数据类型。

我是否可以仅使用名称来访问 .ui 文件中的这些字段?

我在想我可以通过输入对象的名称而不是 class 来创建对象的实例。在 QT 中可能吗?

比如不写

DoubleSpinBox *mySpinBox0 = ui->analogDifferentialInput0MaxDoubleSpinBox;
DoubleSpinBox *mySpinBox1 = ui->analogDifferentialInput1MaxDoubleSpinBox;
DoubleSpinBox *mySpinBox2 = ui->analogDifferentialInput2MaxDoubleSpinBox;
DoubleSpinBox *mySpinBox3 = ui->analogDifferentialInput3MaxDoubleSpinBox;
..
..
..
DoubleSpinBox *mySpinBoxN = ui->analogDifferentialInputNMaxDoubleSpinBox;

我可以通过输入名称 analogDifferentialInput + 数字 + MaxDoubleSpinBox?

来访问所有这些 DoubleSpinBoxes

如果你在Designer中设置元素的对象名称,那么你可以通过findChild直接访问它们(一旦你设置好了ui...)

这是一个示例,我在其中更改了 3 QPushButtons

的文本
ui->setupUi(this);

for(int i = 1; i <= 3; ++i){
  auto btn = findChild<QPushButton*>("button"+QString::number(i));

  if(btn)
      btn->setText("newName"+QString::number(i));
}