前提条件:
ツリービュー項目のカスタム エディターを作成するカスタム 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);
}