QT中输入组件名访问UI个组件?
Access UI components in QT by entering the name of the component?
我的 .ui
文件中有很多 ui
组件。
它们具有相似的名称,例如 analogRead0
、analogRead1
、analogRead2
,并且它们具有相同的数据类型。
我是否可以仅使用名称来访问 .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 QPushButton
s
的文本
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));
}
我的 .ui
文件中有很多 ui
组件。
它们具有相似的名称,例如 analogRead0
、analogRead1
、analogRead2
,并且它们具有相同的数据类型。
我是否可以仅使用名称来访问 .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 QPushButton
s
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));
}