【问题标题】:Qt based app 'Qt platform plugin windows not found' issue when opening a file打开文件时基于 Qt 的应用程序“未找到 Qt 平台插件窗口”问题
【发布时间】:2015-11-24 19:07:56
【问题描述】:

可能大多数有Qt5 库经验的人都会说我应该将qwindows.dll 复制到myappfolder/platforms/qwindows.dll

这已经制作完成并且可以完美运行。

问题是我已经用那个应用程序注册了我的文件的扩展名,当我双击打开一个文件时,应用程序崩溃了,因为它找不到qwindows.dll

Desesperatly 我也尝试了这段代码,但没有运气:

QApplication::addLibraryPath(QCoreApplication::applicationDirPath());
QDir::setCurrent(QCoreApplication::applicationDirPath());
QApplication::addLibraryPath("./");
QString sDir = QCoreApplication::applicationDirPath();
QApplication::addLibraryPath(sDir);
QApplication::addLibraryPath(sDir+"/plugins/");
QApplication::addLibraryPath(sDir+"/platforms/");

但我也没有运气。

有什么建议吗?

正如我在 cmets 中所写的,这与部署问题不同,因为 .exe 如果直接打开,则可以正常打开。

【问题讨论】:

  • 不,正如我所说,我可以毫无问题地部署它我的意思是,如果我尝试直接打开 .exe,它会正常打开,只有当我关联扩展名并打开该文件时才会出现问题,所以它可能类似于使用命令行打开它。
  • 尝试区分错误的搜索路径或插件问题。如果只有 qwindows.dll 有问题,您可能需要添加一个 qt.conf 文件

标签: c++ windows qt platform


【解决方案1】:

所以我猜测通过这样运行它实际上设置了快捷方式所在的应用程序默认目录。 您可以通过将快捷方式/任何文件放在与 .exe 相同的目录中来测试它,看看是否有效。

有一些方法可以告诉 Qt 加载器到别处寻找,但我从未真正使用过它。看这里:http://www.tripleboot.org/?p=536 并搜索 QT_QPA_PLATFORM_PLUGIN_PATH 我认为这是关于将系统变量设置为您的 .exe 位置 设置 QT_QPA_PLATFORM_PLUGIN_PATH=c:\myapp

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-05
    • 2018-10-09
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多