0
저는 현재 직장에서 GUI 인터페이스를 만들기 위해 Qt를 사용하는 학생 프로그래머입니다. 현재 Qt Documentation On the QTreeWidgetItem에 해결책을 찾는 데 문제가 있습니다. 현재 QTree
에 인스턴스를 편집, 삭제 및 복사하는 버튼이있는 인터페이스가 있습니다. 내 나무가 사람이 사는 방식을 이해하는 것이 중요 할 수도 있습니다. QTree
에 표시된 항목은 이러한 방식으로 벡터에서 동적으로 추가됩니다. QTreeWidgetItem : 선택한 항목을 어떻게 가져올 수 있습니까?
void InjectionGUI::addInjections_Clicked() //creates a new instance of injections
{
InjectionDialog newAddInjectionDialog; //where my dialog opens for user input
InjectionData defaultValues;
newAddInjectionDialog.setData(defaultValues);
if(newAddInjectionDialog.exec() == QDialog::Accepted)//a check data returns either Accepted or rejected
{
qTableInjectionData.append(newAddInjectionDialog.transInjectionData); //this appends the valid data from the injection dialog to the vector qTableInjectionData
ui->injectionTreeWidget->clear();
for (int i=0; i < qTableInjectionData.size(); i++) // here I add the data from the vector to the tree widget.
{
InjectionData temp = qTableInjectionData.at(i);
QString injectionType;
QString tmpStr;
int column = 0;
//need sorting solution(still working on this)
if(temp.particleInjectionActive == true) // this evaluates the injection types
{
if(temp.particleInjectionOrLiquidDroplets == true)
{
injectionType += "(LD)";
}
else
{
injectionType += "(P)";
}
}
if(temp.fluidInjectionActive == true)
{
injectionType += "(F)";
}
QTreeWidgetItem *qTreeWidgetItemInjectionData = new QTreeWidgetItem(ui->injectionTreeWidget); //Here data is added into rows from each instance of injection dialog found in vector
qTreeWidgetItemInjectionData->setText(column++, tmpStr.setNum(i));
qTreeWidgetItemInjectionData->setText(column++, temp.lineEditInjectionName);
qTreeWidgetItemInjectionData->setText(column++, injectionType);
qTreeWidgetItemInjectionData->setText(column++, tmpStr.setNum(temp.lineEditParitcleVelocity));
qTreeWidgetItemInjectionData->setText(column++, tmpStr.setNum(temp.lineEditFluidVelocity));
qTreeWidgetItemInjectionData->setText(column++, tmpStr.setNum(temp.lineEditParticleMassFlow));
qTreeWidgetItemInjectionData->setText(column++, tmpStr.setNum(temp.lineEditFluidMassFlow));
qTreeWidgetItemInjectionData->setText(column++, temp.lineEditComment);
}
}
}
지금 난 정말 내가이 벡터에서 삭제 가질 수 있도록 사용자가
QTree
에서 선택한 어떤 항목을 찾을 수있는 방법이 필요합니다. 내 psuedo 어떤 행이 선택되었는지 확인, 삭제 확인, itemAt (항목이 선택됨), ID 열을 재 할당; 각 인스턴스에이 열의 숫자가 지정되어 있기 때문입니다. 3 년 전에 올린이
post을보고있었습니다. 하지만 대부분은 제가 이미 검토하고있는 문서를 다시 말합니다. 게다가, 다른 답변이 제대로 된 것 같아 선택한 대답은 매우 결정적으로 보입니다. 나는이 대답이 나 앞에서 바로 여기에 있음을 이해한다. 하지만 멍청한 멍청한 멍청한 놈들 일 수도 있고 구현을 이해하는 데 어려움을 겪고 있습니다. 이 작업을 배우고 수행하는 데 관심이있는만큼 생산적인 피드백을 남기십시오. 고맙습니다.
Im 시도해보십시오. 어쩌면 내가 다른 항목을 위해 재사용 할 수 있도록 선택한 항목을 반환하는 독립적 인 연결 문을 가지고 있어야합니까? –
@WylieCoyoteSG. 제발 저를 계몽하십시오. '독립 연결 문'이란 무엇입니까? – pmr
나는 사용, 삭제, 복사 및 편집하려는 각 기능에 대한 버튼이 있습니다. 이들 각각은 connect 문을 가지지 만, 클릭 한 트리 위젯 Item에 대한 또 다른 connect 문을 가지고 있어야합니까? 뭔가 선택 항목을 선택한 항목에 대한 포인터를 반환하는 포인터 함수에 연결하는 것이 좋습니다. 그런 다음 복사, 편집 및 삭제에서 connect 문을 사용합니다. * 선택한 항목을 가져 가서 물건을하십시오. –