从插件 (.so) 加载 Qt UI(带图像)时遇到问题

2024-04-05

我有一个插件,可以加载并显示一个自定义小部件,该小部件显示从资源文件 (resources.qrc) 加载的图像(作为 QLabel 的背景)。我面临的问题是,加载插件后,它会正确显示小部件,但不显示图像。我尝试将“Q_INIT_RESOURCE(资源)”放在任何地方,但没有任何反应。我创建了许多使用 qrc 文件来显示图像的自定义小部件,但仅直接在应用程序内,效果很好。这次是来自插件,所以这里一定是我遗漏了一些东西。有什么帮助吗?

// TheInterface.h
class TheInterface
{
    ...
}
Q_DECLARE_INTERFACE(TheInterface,"com.system.subsystem.TheInterface/1.0");



// MyWidget.h
class MyWidget : public QWidget, public Ui::MyWidget
{
    Q_OBJECT
    ...
}



// MyPlugin.h
#include "TheInterface.h"
class MyPlugin : public QOBject,
                 public TheInterface
{
    Q_OBJECT
    Q_INTERFACES(TheInterface)

    ...
};

// MyPlugin.cpp
#include "MyPlugin.h"
#include "MyWidget.h"
MyPlugin::MyPlugin()
{
    MyPlugin* w = new MyPlugin();
    w->show();
}

Q_EXPORT_PLUGIN2(myplugin, MyPlugin)

问题解决了。

问题是主应用程序已经有一个同名的 qrc 文件(resources.qrc)。该插件——由主应用程序加载——有不同的resources.qrc文件,但因为主应用程序已经有一个同名的文件,所以它没有加载它。我更改了插件中资源文件的名称并且工作正常。当然,我必须改变Q_INIT_RESOURCE( resources ); to Q_INIT_RESOURCE( new_resource_file_basename );这是从构造函数调用的MyWidget class (MyWidget::MyWidget())。换句话说,它不需要位于插件的构造函数中(MyPlugin::MyPlugin())。这是有道理的,因为MyWidget类是使用资源文件的类,而不是插件的类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从插件 (.so) 加载 Qt UI(带图像)时遇到问题 的相关文章

  • Qt/c++ 随机字符串生成[重复]

    这个问题在这里已经有答案了 我正在创建一个应用程序 需要生成多个随机字符串 几乎就像一个由一定长度的 ASCII 字符组成的唯一 ID 这些字符混合有大写 小写 数字字符 有没有 Qt 库可以实现这一点 如果没有 在纯 C 中生成多个随机字
  • Qt Creator:如何区分 win32 和 win64

    我必须在 pro 文件中执行类似的操作 win32 LIBS L 3rdparty libusb win32 lib msvc llibusb else win64 LIBS L 3rdparty libusb win32 lib msvc
  • 如何创建QWidget的屏幕截图?

    我在 Qt Creator 中做作业 在其中绘制 QWidget 并且需要保存此 QWdiget 的某些部分 我试图解决这个问题 QPixmap pixmap pixmap copy rectangle rectangle is part
  • Qt 创建者 + MITK (Linux)

    我正在尝试使用MITK 与 Qt Creator 我已经通过 ccmake 成功编译并使用了 VTK 和 ITK 我已经编译了 MITK超级建造模式 它下载 CTK VTK ITK 等 然后我就配置好了 我已经用 make 编译了 大约两个
  • Qt WinRT 应用程序无法访问文件权限被拒绝

    我需要使用 Qt 和 FFMPEG 开发 WinRT 应用程序 我根据指令构建了 WinRT 的 ffmpeghere https github com Microsoft FFmpegInterop我可以将库与我的项目链接起来 现在我需要
  • QTcpSocket 有时不发送数据

    我有两个 QT 应用程序 一个应用程序可以被认为保存了大数据 它每秒向第二个应用程序发送大约 10 KB 的数据块 之前我尝试使用QUdpSocket来传输数据 但由于MTU限制在2 5K左右 并且需要自己分割和重新组合数据 所以我改用QT
  • QTextEdit.find() 在 Python 中不起作用

    演示问题的简单代码 usr bin env python import sys from PyQt4 QtCore import QObject SIGNAL from PyQt4 QtGui import QApplication QTe
  • 如何使用 Qtimer 添加 1 秒延迟

    我目前有一个方法如下 void SomeMethod int a Delay for one sec timer gt start 1000 After one sec SomeOtherFunction a 这个方法实际上是一个附加到信号
  • 如何在 QTabWidget Qt 中展开选项卡

    我有一个QTabWidget像这个 但我想展开选项卡以 填充 整个小部件宽度 如下所示 我怎样才能做到这一点 我在用Qt 5 3 2 and Qt 创建者 3 2 1 Update 我尝试使用setExpanding功能 ui gt myT
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • Qt 布局,在小部件大小更改后调整到最小大小

    基本上我有一个QGridLayout里面有一些小部件 最重要的是 2 个标签 我用它们将图像绘制到屏幕上 好吧 如果用户愿意 他可以更改传入图像的分辨率 从而强制标签调整大小 我们假设标签的初始大小是320x240 用户将 VideoMod
  • 即使在可访问性中勾选应用程序,AXIsProcessTrustedWithOptions 也不会返回 true

    As this question https stackoverflow com questions 17693408 enable access for assistive devices programmatically on 10 9
  • PyQt5:如何使QThread返回数据到主线程

    I am a PyQt 5 4 1 1初学者 我的Python是3 4 3 这是我尝试遵循的many https mayaposch wordpress com 2011 11 01 how to really truly use qthr
  • Qml 模块未找到 CPP 类注册与新的 QML_ELEMENT r

    我尝试使用 Qt5 15 0 和新宏 QML ELEMENT 在 QML 中注册我的自定义 CPP 类 但找不到该模块 Qt Creater 帮助文件描述了 QML ELEMENT 的步骤 我也检查了 Qt 手册 但没有幸福的结局 http
  • Qt - 无法让 lambda 工作[重复]

    这个问题在这里已经有答案了 我有以下功能 我想在其中修剪我的std set
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 如何检测QTableView中的双击

    我正在使用 PyQt 创建 GUI 应用程序 在继承自 QTableView 的视图中 需要检测用户双击行时选择的行 该表可以排序 但不能编辑 我该怎么做 注意 尝试了 doubleClicked int 信号 它是由鼠标按钮发出的 而不是
  • 使用新语法应用 Android Gradle 插件

    如何使用新的 Gradle 插件语法应用 Android 插件 plugins id version 代替 buildscript dependencies classpath com android tools build gradle
  • 从 Qt4 中的文本文件中逐字读取

    我想在 Qt4 中逐字读取一个文本文件 说实话我对它很陌生 我想在另一个文件中每行一个字写入 我可以在 C 中做到这一点 没有任何问题 但是当我尝试在 Qt4 中使用 ifstream 和 ofstream 时 我遇到了错误 这是我的 Qt
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table

随机推荐

  • SendInput 不会将基本 Unicode 发送到某些窗口

    我在 C 中遇到这个项目的问题 当使用 WinAPI SendInput 函数时
  • Excel VBA:为什么没有添加任何后续系列?

    我试图将大约 200 个系列绘制到一个图表上 并尝试使用 for 循环为我绘制所有系列 但是 当我运行以下代码时 只有第一个系列 不在 for 循环中 实际上进入了图表 for 循环生成的所有其他内容都没有显示 我不知道为什么 Sub Ma
  • 如何禁用/启用复选框激活中的 PayPal 按钮?

    我的网站上有一个页面设置为定期付款 但我想禁用 PayPal 结账按钮 直到有人选中同意我的服务条款的框 你能帮我弄清楚如何正确地做到这一点吗 谢谢 布拉德 p class hidden Please check the checkbox
  • httplib.InvalidURL:非数字端口:

    我正在尝试编写一个脚本来检查是否存在许多网址 import httplib with open urls txt as urls for url in urls connection httplib HTTPConnection url c
  • 我如何强制浮动 DIV 匹配另一个浮动 DIV 的高度?

    我的 HTML 代码只是将页面分为两列 分别为 65 35 div style width 65 height 1 background color FDD017 div div div div style width 35 height
  • @XmlPath 在 JAXB 编组期间没有影响

    我正在尝试使用创建 XMLJaxB Marshalling方法 我想跳过某些子项的父标签 或者可能添加新的XML某个元素的父标签 因此我尝试使用 XmlPath from import org eclipse persistence oxm
  • R plyr,data.table,应用data.frame的某些列

    我正在寻找加速我的代码的方法 我正在调查apply ply方法以及data table 不幸的是 我遇到了问题 这里有一个small样本数据 ids1 lt c 1 1 1 1 2 2 2 2 ids2 lt c 1 2 3 4 1 2 3
  • 如何在运行时更改android中睡眠/定时器线程的延迟?

    我试图做的是每次计数器变为 5 的倍数时减少计时器延迟 但是 一旦代码进入 if 块 它就停止递增计时器 我不明白发生了什么事 这是代码 thread new Thread public void run try if count 5 0
  • 最小化 WPF 中的窗口?

    使用 Windows 时如何以编程方式最小化窗口WPF 我似乎可以找到 Resize 属性 set WindowState WindowState Minimized
  • ListView 中重复的行

    我知道这个问题已经出现过很多次了 但由于某种原因我似乎无法让它发挥作用 事实上 在某些情况下 getView 会被多次调用 但是 在此处给出的示例中 http android amberfog com p 296 http android
  • 如何检查 python 函数是否发生更改(在实时代码中)?

    如果我有一个函数的引用 我可以检查它的代码对象f code 获取签名 然后针对此签名执行后续检查以查看代码是否已更改 这很好 但是 如果函数的依赖项之一发生变化怎么办 例如 def foo a b return bar a b 比方说foo
  • 我应该直接访问mongodb吗?

    我们正在制作android应用程序 需要从mongodb数据库获取数据 数据库中会有很多条目 并且请求会非常频繁 我们应该直接访问它还是制作一个 PHP 脚本来访问它并以 JSON 格式返回所需的结果 我们应该直接访问它吗 You 确实不想
  • 使用knitr和RStudio在外部文件中进行代码折叠

    我找不到任何方法可以将语法上可接受的 RStudio 样式折叠插入到外部 R 代码文件中 该文件设置为从 knitr 文档中使用 或者我错过了什么 有几种方法可以做到这一点 1 允许代码标头 例如 knitr Q1 也许 knitr Q1
  • java中如何对对象进行排序? [复制]

    这个问题在这里已经有答案了 可能的重复 如何按属性对对象的数组列表进行排序 https stackoverflow com questions 2535124 how to sort an arraylist of objects by a
  • 将行恢复为默认列值 mysql

    我正在使用 MySQL 社区服务器 5 1 有没有一种方法可以通过一个查询将所有行设置回默认列值 我刚刚添加了很多行 我为大多数指定的列设置了默认值 但由于某种原因 所有列值都设置为 0 我想知道是否有一个查询将所有列值设置为其默认值 并且
  • java.lang.IllegalStateException:找不到工厂javax.faces.application.ApplicationFactory的备份[重复]

    这个问题在这里已经有答案了 我想从 jsf 2 1 迁移到 2 2 但无法运行我的服务器 Tomcat 导致出现以下错误 我谨通知您 我在项目 Maven 中使用了 Hibernate Spring JSF Root WebApplicat
  • Windows 7 中 NASM 程序中的 I/O

    我想用 NASM 汇编语言进行编程 我有 NASM 2 07 和 Borland C 编译器 5 0 bcc32 我的操作系统是Windows 7 我不知道如何在Windows平台上使用NASM进行输入和输出 请问你能帮我吗 最简单的方法是
  • 调试 javascript 有哪些好的技巧? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 所以我相当经常地使用 JavaScr
  • 关于C++类中typedef函数的疑问

    我需要定义一个返回类对象的函数 假设我有一个名为狗的类 h 中的类声明和 cpp 中的实现 当狗死时 我想调用一个函数让狗管理器知道这一点 在dog的SetFunc中我将收到要调用的函数 Dog h class Dog public typ
  • 从插件 (.so) 加载 Qt UI(带图像)时遇到问题

    我有一个插件 可以加载并显示一个自定义小部件 该小部件显示从资源文件 resources qrc 加载的图像 作为 QLabel 的背景 我面临的问题是 加载插件后 它会正确显示小部件 但不显示图像 我尝试将 Q INIT RESOURCE