QFileDialog :: getOpenFileName низкая производительность и пользовательский опыт - PullRequest
0 голосов
/ 06 октября 2019

Я хочу, чтобы мои пользователи выбирали существующий файл из файловой системы. Похоже, решение Qt QFileDialog. Я посмотрел документы и придумал что-то вроде этого:

void MainWindow::openFileDialog()
{
  const QString& inifilePath =
      QFileDialog::getOpenFileName(this,
                                   tr("Select Ini file"),
                                   QStandardPaths::writableLocation(QStandardPaths::DesktopLocation),
                                   tr("Ini files (*.ini)"));
  qDebug() << inifilePath;
}

MainWindow - мой класс главного окна. Проблема в том, что диалоговое окно файла открывается недопустимо медленно. После этого он все еще глючит. Если вы щелкнете правой кнопкой мыши что-нибудь на боковой панели, то снова понадобится целая вечность, чтобы отобразить параметры щелчка правой кнопкой мыши, и вы получите вывод, похожий на предупреждение во время выполнения:

***********Create CommApi2Trayhelper************
***********Destruct CommApi2TrayHelper************
**********CommApi2TrayHelper::UnInitCheck*************

Когда пользователь выбирает какой-либо файл и нажимает кнопку OKвыдает еще одно предупреждение во время выполнения:

shell\comdlg32\fileopensave.cpp(14403)\comdlg32.dll!00007FFD757795AE: (caller: 00007FFD757A8291) ReturnHr(1) tid(1d9c) 80004005 Unspecified error    CallContext:[\PickerModalLoop]

Все это заставляет меня поверить, что я что-то делаю неправильно, хотя я делаю именно то, что делают примеры в документации. Что я делаю неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...