问题标签 [qtplugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
503 浏览

c++ - 无框窗口在linux上显示黑色边框

我创建了一个带有阴影效果的对话框

这在 Windows 上非常有效,但是当我在 Linux 中打开相同的对话框时,它会在对话框周围显示深黑色边框。

我需要做些什么才能使其在 Linux 上运行。

在此处输入图像描述 在此处输入图像描述

0 投票
0 回答
507 浏览

c++ - Qt 5.6 如何在我的自定义小部件插件中使用 QWebEngineView?

我正在尝试创建一个 Qt 自定义小部件插件来包装 QWebEngineView。但我发现 QWebEngineView 似乎不适用于 Qt Designer。

下面附上演示代码。在构建并将此插件放置在 Qt 插件文件夹中之后,Qt Designer 将无法正确启动(无 GUI 窗口)。

如果我删除该行m_web = new QWebEngineView();,则 Qt Designer 可以正确加载该插件。

如何解决这个问题?

在此处输入图像描述

0 投票
1 回答
158 浏览

qt - 已加载 Qt 样式插件但缺少密钥

我试图为我的项目创建一个样式插件,插件似乎正在加载,但为什么 QStyleFactory::keys() 没有返回我的密钥?通过将 QT_DEBUG_PLUGINS 设置为 1,我收到以下消息:

在我的主要()中:

最后一个 qDebug 语句打印:

0 投票
2 回答
598 浏览

qt - QPluginLoader 实例返回 null

问候

我创建了插件Qt (5.6.2)并尝试加载它,但它一直返回null。我检查了几个问题并尝试了解决方案,但它对我不起作用。

你能看看下面的代码,看看有什么问题吗?

设备管理器.hpp

DeviceManagerImpl.hpp

轮廓

这就是我尝试在我的主进程中加载​​插件的方式。

我使用 QT 5.6.2 和 QT Creator 和 MinGW 32 位。

编辑1: 我找到了原因,但我不知道为什么会导致问题,我使用链接到项目的库但是当我使用它的函数时,实例返回null。

我也没有编译或链接器错误。谁能告诉我这里有什么问题?

编辑2:

CMakeList.txt我使用Visual Studio. (使用 CMake 制作)

这是.pro文件中Qt Creator的库和插件的配置,MinGW当我使用该库时,这些配置不起作用。

所以我可以说它自己的代码很好,我肯定在.pro文件中缺少一些配置。

INCLUDEPATHPS1:插件和加载插件的应用程序,它们的 pro 文件中都有LIBS库。

PS2:应用程序和插件都处于调试模式

PS3:我在编译期间没有收到任何编译错误或链接器错误。

编辑 3:

我制作了简单的控制台应用程序并包含了我的库头文件和 lib 文件并调用了该函数,这是我在运行应用程序时遇到的错误。所以一定是这样。但是说真的为什么!!!

编码:

错误:

PS:该库来自受信任的来源,并且可以与 Visual Studio 完美配合。

提前致谢。

0 投票
1 回答
49 浏览

qt - 在 Qt Creator 的控制台应用程序中调试共享插件

问候

我在 qt creator 的一个会话中有 2 个项目。一个是控制台应用程序,另一个是共享插件。我正在加载插件,然后调用它的方法。我想输入插件的方法并对其进行调试(如果您在一个解决方案中有项目,则如 Visual Studio)。是否可以?如果是,我该怎么做?

PS:我正在使用带有 MinGW 32 位的 Qt 5.6.2。

提前致谢

0 投票
1 回答
186 浏览

c++ - Qt 小部件插件在设计器中没有输出

我有一组要在 Qt Designer 中实现的自定义小部件。我已经成功构建了插件,并且已经输出.lib了文件和.dll文件。我成功地在 Qt Designer 中看到了我的所有小部件的列表。但是,当我将一个小部件拖到场景中时,什么也没有。现场什么都没有,光标什么也没有,什么都没有。我将提供我的一个小部件及其相应插件的相关代码。非常感谢您对此事的任何帮助/评论。

编辑:我被告知要为我的项目创建一个 MCVE,以使其易于编译和调试。所以我有。https://github.com/NickJohn547745/MaterialWidget-MCVE

0 投票
1 回答
159 浏览

qt - 用于配置的 Qt 插件选项

我正在尝试按照启用选项的说明构建qtvirtualkeyboard插件arrow-key-navigation。但我不明白如何以正确的方式启用它。我试图添加

进入qtvirtualkeyboard.pro没有任何成功。当我添加

进入src/virtualkeyboard/virtualkeyboard.pro它有效,但我认为这是错误的方式。

0 投票
1 回答
1444 浏览

c++ - 使用带有新信号槽语法的 Qt 插件系统在接口类中声明信号

我正在使用低级 Qt 插件 API为 Qt 应用程序构建一组插件。管理器对象将在运行时加载这些插件,并允许客户端程序访问任何可用的插件。我希望管理器通过信号和插槽与插件类进行通信,因为这些插件可能与管理器存在于不同的线程中。

所以每个插件必须实现的接口应该声明这些信号和槽。插槽没有问题,因为它们实际上只是每个插件必须实现的抽象成员函数。信号就是问题所在。

虽然信号可以在接口类中声明,但它们的定义是由 Qtmoc在编译过程中自动生成的。因此我可以在接口类中定义这些信号,但是在创建实现接口的插件时,构建在链接处失败。这是因为信号的定义是在接口对象文件中,而不是在插件对象文件中。

所以问题是,如何确保Interface在构建类时生成和/或链接类中Plugin

这是一个最小的,完整的例子来演示这个问题。

目录结构

test.pro

app/app.pro

app/interface.h

app/main.cc

plugin/plugin.h

plugin/plugin.pro

这可以通过qmake && make从顶级目录调用来编译。

照原样Interface继承自QObject,因此它可以定义所有插件共享的信号。但是在编译plugin子目录时,我们得到一个链接器错误:

这对我来说很有意义。moc实现信号,因此Interface::name(QString)实现及其相关符号在moc_interface.o. plugin该目标文件在构建子目录时既没有编译也没有链接,因此没有符号定义并且链接失败。

实际上,我可以很容易地解决这个问题,方法是在plugin.pro文件中包含以下行:

或添加:

到结束plugin/plugin.h

这两个似乎都是一个坏主意,因为这些文件是在构建过程中自动生成的app,而且我没有真正的方法来保证它们存在。我希望新插件的编写者只需要担心包含"interface.h"标题,而不是这些自动生成的文件。

所以问题是,我怎样才能在构建时qmake包含来自类的信号的定义?InterfacePlugin

相关问题:

我知道这个答案解决了一个密切相关的问题。但这使用连接信号和插槽的旧式“字符串化”版本。我更喜欢使用新的指向成员的语法,它提供编译时检查。此外,该解决方案需要ing 接口,这比让类直接继承自dynamic_cast更容易出错且效率更低。InterfaceQObject

0 投票
1 回答
160 浏览

c++ - 是否可以使用基类和派生类来实现 Qt 应用程序插件?

假设我有以下玩具界面:

我想在两个类中实现它:Base 和 Derived。

我错误的推理告诉我这应该有效。插件的抽象基类为接口的一部分提供功能,而派生类构成接口的其余部分。我可以通过一些明智的删除宏(基类元数据宏)来编译它。但是,生成的插件不会加载。所以我认为我的推理有问题,经验丰富的 Qt 开发人员或 c++ 开发人员可能会指出我看不到。

0 投票
0 回答
751 浏览

qt - 在运行时禁用 Qt 承载管理

Qt 网络承载管理(Win10 x64,Qt 5.9.latest)存在一些问题。注意到以下问题:

  • WIFI接口无法识别
  • 一个 WIFI 接口被标记为不可访问但工作(QAM 请求工作)
  • 有线局域网不受影响

在某种程度上,我可以通过 从我的发行版中删除bearer 文件夹来解决这个问题。我知道我可以编译一个没有承载管理的 Qt 版本,但这是一个预编译的 Win64 版本,bearer现在只有一个删除的文件夹。

  1. 我可以在运行时以某种方式动态禁用承载管理吗?
  2. 删除文件夹有风险吗?它似乎适用于我们的应用程序,但是否有一些预期的副作用会杀死应用程序?

对我们来说,它与 5.6.x 的承载管理一起工作,现在被 5.9.x 破坏了,我的 5.11.x IDE 版本(我用于开发)似乎仍然被破坏。

- - 编辑 - -

有了承载和WIFI和电缆,我看到了(WIFI适配器已连接但未显示)

如果没有承载,则不会显示网络配置,并且 QAM 报告“不可访问”(但有效)

只有承载和WIFI(工作)它看起来像没有承载: