在我的應用程序中,當單擊「打開文件」菜單並選擇一個文件時,將在listwidget
上添加所選項目(3D對象文件)。如果在列表中雙擊該項目,該項目將顯示在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
作爲參數。把這兩者結合起來似乎對我來說不是一件容易的事。有人有想法嗎?這將不勝感激。
感謝您的回答。但我不斷收到相同的錯誤信息,'ASSERT FAILURE Qvector :: at「Out of Index Range:',我甚至不知道qvector的使用位置。 – user3734823
@ user3734823你爲什麼不把這個錯誤信息放入你的問題?另外,我上面列出的兩個解決方案中的哪一個你嘗試過? –
@ user3734823我的第一個解決方案中有一個小錯誤 - 我只是改了它 –