누군가 QString을 사용하여 QObject를 참조 할 수 있습니까? 이 사이트에서 Qt 문서 및 유사한 답변을 기반으로 여러 가지 방법으로이 작업을 수행하려고 시도했습니다.QString을 사용하여 objectName을 참조하는 방법은 무엇입니까?
QString string = "mylabel_"
for(int i = 0; i < my.count(); i++)
{
QString thisString = string + QString::number(i);
QString labelText = ui->thisString->text(); //'ui' has no members named 'thisString'
functions::saveLine(&nameFile, labelText);
}
objectName은 단지 QString이지만이 방법을 사용하면 작동하지 않습니다. 또한 findChildren을 사용해 보았지만이 함수에 대한 설명서를 완전히 이해하지 못했을 수 있습니다.
QList<QWidget *> labels = dialog.findChildren<QWidget *>("mylabel_");
for(int i = 0; i < labels.count(); i++)
{
QString labelText = ui->labels[i]->text(); //'dialog' has no member named 'labels'
functions::saveLine(&nameFile, labelText);
}
최종 결과는 대화 상자에 텍스트를 저장하려는 QLabels 목록이 있습니다. saveLine 함수를 다른 곳에 성공적으로 사용했지만 위의 오류를 참조하여 객체를 참조하려고합니다. 모든 추천은 매우 도움이 될 것입니다.
업데이트 : 어떤 오류도 반환하지 않도록 수정했지만 여전히 결과를 반환하지 않으므로 findChildren 메서드와 QString이 objectName. 다음은 업데이트 된 코드이지만 여전히 결과를 반환하지 않습니다.
QList<QLabel *> labels = this->findChildren<QLabel *>("mylabel_");
for(int i = 0; i < labels.count(); i++)
{
QString labelText = labels.at(i)->text();
functions::saveLine(&nameFile, labelText);
}
그래서 개체 이름 = "mylabel_"로 시작하는 모든 레이블을 발견하고, QList에 넣어 할 수 있다면, 이것은 saveLine에 그들로부터 텍스트를 끌어 통과 할 수있을 것 함수를 구현했습니다. 그러나 findChildren에 대한 인수로 넣은 QString을 기반으로 레이블을 찾지 못하는 이유를 알 수 없습니다.
모든 것이 'ui->'로 시작해야하는 것은 아닙니다. 지역 변수가 아닙니다. – LogicStuff
findChildren을 실행 한 후 목록에 레이블이 있습니까? – vincent
또한 대화 코드를 보는 것이 도움이됩니다. – vincent