Предпосылки:Сбой при вызове GetOpenFileName из QItemDelegate в собственном редакторе
У меня есть обычай QItemDelegate, который создает пользовательский редактор для элементов TreeView. Редактор состоит из QLineEdit и QToolButton. Кнопка используется для открытия диалогового окна файла для выбора файла и помещения его пути в редактирование строки. Я использую вызов QFileDialog :: getOpenFileName, чтобы открыть диалоговое окно файла. Диалог - это родной диалог с файлом Windows (это важно).
Когда редактор создан в первый раз, все работает нормально, независимо от того, как часто я нажимаю эту кнопку. Но после того, как редактор закрыт и снова откроется, первое нажатие на кнопку приводит к сбою. Причиной аварии является то, что мой пользовательский редактор в конечном итоге удаляется.
Вот код:
void CCustomEditor::on_RunSetupBtn_clicked()
{
auto qFilename = QFileDialog::getOpenFileName(this,
"Select application to run",
QString(),
"Executable files (*.exe)");
if (qFilename.isEmpty())
return;
SetCommandLine(QDir::toNativeSeparators(qFilename), m_qParameters);
}