我只是在阅读有关 QWidgets 的内容,我想创建插件,这些插件是在运行时加载的小部件。当我查看示例代码和需求时,插件似乎继承自接口和 QObject。我将如何创建 QWidget 插件,它们都有不同的按钮和不同的插槽?此外,是否可以创建一个从接口继承的插件和一个从 QWidget 继承的基类(从 QObject 继承)。
http://developer.qt.nokia.com/doc/qt-4.8/plugins-howto.html
但是,我读到了元对象,您可以在运行时加载小部件,只需知道它们的名称(不需要 RTTI 支持)。但究竟我将如何将课程交付给项目以使其识别它们?在处理插件时,我需要将它们放在一个特殊的项目中,我在 .pro 文件中使用不同的标志集进行编译。但是我在这里怎么做呢?
我真的很想使用 qtplugin 但是如何使用呢?
一个主意:
让插件创建它返回的 QWidget 是否可以接受和优化?如果我在没有它的情况下创建我的界面,我真的看不出向设计师编写插件的意义。还是我误解了?
http://techbase.kde.org/Development/Tutorials/Writing_Qt_Designer_Plugins
class workspaceInterface {
virtual QWidget* createWorkspace(QWidget* parent);
... other useful functions...
}
class mySpecialWidget : public QWidget {
mySpecialWidget {
add a layout, add some buttons, maybe change the color
}
}
//plugin
#include "myspecialwidget.h"
class myPlugin : public QObject, public workspaceInterface {
QWidget* createWorkspace(QWidget* parent) {
return new MySpecialWidget();
}
....
}
我会将所有这些代码放入一个项目中,将其编译为插件,然后在我的主应用程序中查找并加载它。我将创建它的一个实例并让它创建一个我将显示的小部件。
有没有更好的方法来做到这一点,或者是这样吗?