【问题标题】:Qt Deployment - QGraphicsView not displaying on other machinesQt 部署 - QGraphicsView 不显示在其他机器上
【发布时间】:2013-01-11 15:58:31
【问题描述】:

所以我一直在为我的公司使用 Qt 4.8.4(必需)制作程序。将项目部署到另一台机器时,程序运行良好(我包括 Qtgui4.dll 和 Qtcore4.dll)。但是,当尝试使用 QGraphicsView 查看打印预览图像时,没有其他机器会显示它。我什至尝试在另一台机器上安装 Qt 4.8.4 并在那里构建它无济于事。我使用 MSVC 编译并在新机器上安装了 Visual Studio。在将 .exe 部署到其他机器时,我还包括 imageformats 文件夹。

我在这里不知所措。我已经研究了几天。我不明白为什么它在我的机器上运行得很好,但即使我复制开发环境也不能在其他机器上运行。

我附上了一张实际工作的图片。

在所有其他机器上,预览图像显示为空白/白色。但是,我注意到图像已构建并且将打印。它只是不会预览。

我知道我没有包含任何代码,但我无法像我的公司那样包含很多代码。但我已经包含了与 QGraphicsView 相关的内容。

// Create a handle for the graphics view; fix bug where preview would disappear
// on first view; winId() creates the winId; Needed to initialize first
ui->graphicsView->winId();
/************************************/
if (preview)
    preview(ui->graphicsView->winId(), &err);

【问题讨论】:

  • 您是否检查过 imageformats/ 中的 dll 是否真的被加载了?
  • 我过去也遇到过类似的问题,因为 Qt 的部署版本禁用了 jpg 支持。您可以尝试使用 .png 或 .bmp 作为图像格式而不是 .jpg,或者检查部署 Qt 构建的“配置”参数以确保启用 jpg 支持。
  • 我想我应该注意到我实际上并没有“部署”该项目。我只是将构建的项目转移到另一台机器上。此外,jpeg 正在工作。它将加载所有图像以打开它们并使用公司 SDK 创建图形。我遇到的唯一问题是 QGraphicsView。无论出于何种原因,即使在另一台计算机上安装了 Visual Studio 和 Qt,QGraphicsView 也不会显示图像预览。
  • 另外,我已经运行了 Dependency Walker 来查看 .exe 目录中是否有任何 dll 不包含导致它无法工作。列出的仅有 Qtgui4.dll、Qtcore4.dll、msvcr90.dll 和 kernel32.dll。 Qt dll 在目录中,另外两个已经在机器上。
  • 我已经使用 MinGW 重建了项目,结果相同。经过更多测试,预览版似乎可以在所有 Windows 7 机器上运行,但拒绝在 Windows XP 机器上运行。 Qt for Windows 7 是否存在库依赖关系?我不认为有,因为我可以在 XP 机器上编译项目。但话又说回来,我不知道为什么预览拒绝工作。我唯一能想到的是 winId() 返回不同的 ID。

标签: c++ qt visual-studio-2008 dll qgraphicsview


【解决方案1】:

我没有找到解决方案。我完成了申请,规定操作系统不能是XP。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 2021-06-29
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    相关资源
    最近更新 更多