내 응용 프로그램에서 "파일 열기"메뉴를 클릭하고 파일을 선택하면 선택된 항목 (3D 오브젝트 파일)이 listwidget
에 추가됩니다. 목록에서 항목을 두 번 클릭하면 해당 항목이 화면에 listwidget
옆에 표시됩니다. 그러나 사용자 인터페이스를 단순화하기 위해 두 번 클릭하지 않고 항목을 목록에 추가하고 동시에 화면에 표시하려고합니다. 간단히 말해서, 나는 두 개의 함수, void MainWindow::on_actionOpen_Model_triggered()
과 MainWindow::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
을 하나로 결합하고 싶습니다. 하나의 두 기능 결합
void MainWindow::on_actionOpen_File_triggered()
{
QFileDialog diag(this);
diag.setNameFilter(tr("STL files(*.stl)"));
diag.setFileMode(QFileDialog::ExistingFiles);
diag.setViewMode(QFileDialog::Detail);
QStringList fileNames;
fileNames = diag.getOpenFileNames(this, "Open Model Files", "", "STL Files (*.stl)");
//qDebug()<<QFileInfo(fileNames).absoluteDir();
qDebug()<<fileNames;
ui->listWidget->addItems(fileNames);}
는이 같은 파일 열기 함수의 끝에서
itemDoubleClicked
기능을 추가했습니다.
this->on_listWidget_itemDoubleClicked(ui->listWidget->currentItem());
그러나 파일을 열 때마다 응용 프로그램이 중지됩니다. 선택된 파일이 아직 listwidget
에 추가되지 않았기 때문에 같은 기능의 두 번 클릭 된 함수가로드하려고했기 때문입니다. 더블 클릭 함수는 인수로 QListWidgetItem *item
을 취합니다. 그 두 가지를 결합하는 것은 쉬운 일이 아닙니다. 누구나 아이디어가 있습니까? 고맙겠습니다.
감사합니다. 하지만 여전히 동일한 오류 메시지가 계속 발생합니다. 'Qvector가 실패했습니다 : 인덱스 범위를 벗어남 :'에서 Qvector가 사용되는 위치를 알지 못합니다. – user3734823
@ user3734823 왜이 오류 메시지를 입력하지 않았습니까? 귀하의 질문? 또한 위에 설명한 두 가지 솔루션 중 어느 것을 시도 했습니까? –
@ user3734823 첫 번째 해결 방안에 약간의 실수가있었습니다 - 방금 변경했습니다 –