【问题标题】:Qt display image in a new windowQt 在新窗口中显示图像
【发布时间】:2010-04-09 06:30:25
【问题描述】:

我对 Qt 和 GUI 编程很天真。

Qt jpg image display

显示图像的过程运行良好,感谢您提供。但是我想在单击单选按钮时显示图像。

我创建了一个插槽,并将按钮单击事件连接到插槽(dispImage 是我的插槽)。我的插槽仅包含用于显示图像的代码(此链接中的第一个答案)。

我能够编译并运行它。但 o/p 并不如我们所愿。

单击按钮时,图像窗口会闪烁几秒钟然后消失。

还有一点要分享的是,我对 qt 示例中的 windowsflags 示例进行了相同的尝试。

在这个例子中,我想在我们创建的预览窗口上显示图像。即使这对我也不起作用。

请给我解决方案。

提前致谢。

【问题讨论】:

    标签: qt


    【解决方案1】:

    发生这种情况是因为您连接到插槽的方法正在创建在堆栈上显示图像所需的所有对象,并且当该方法返回时它们超出范围并被销毁。链接的示例在方法的末尾运行了事件循环,因此对象在程序退出之前不会超出范围。

    您可以通过使具有应用程序生命周期的类的必要对象成员变量来解决此问题。

    【讨论】:

      【解决方案2】:

      上面Stu的回答是正确的。

      如果你不明白他在说什么,你可能想在进入 Qt 之前对 C++ 稍微熟悉一点。您引用的示例与您尝试做的不同。这是一个 main() 函数,其堆栈变量在进程退出之前不会超出范围(即 main() 返回时)。一旦方法返回,方法中的堆栈变量就会超出范围。

      使用您引用的示例作为您的方法的模板,您需要在无线电槽对象的头文件中将 QGraphicsView 对象声明为类变量。这将使它保持在范围内,直到您的 radioslot 对象被销毁。

      【讨论】:

        猜你喜欢
        • 2022-10-02
        • 1970-01-01
        • 2011-05-05
        • 2014-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多