Предпосылки:
У меня есть собственный QItemDelegate, который создает собственный редактор для элементов дерева. Редактор состоит из 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);
}