我在一个命名空间了myNameSpace促进自定义窗口小部件名称空间中的
namespace MyNameSpace{
class MyCustomWidget : public QWidget{
};
}
如何促进一个QWidget在我的UI形式MyCustomWidget已经MyCustomWidget?它似乎不接受自定义命名空间。
我在一个命名空间了myNameSpace促进自定义窗口小部件名称空间中的
namespace MyNameSpace{
class MyCustomWidget : public QWidget{
};
}
如何促进一个QWidget在我的UI形式MyCustomWidget已经MyCustomWidget?它似乎不接受自定义命名空间。
输入包含名称空间的类的名称:My::PushButton
。有用。请注意:
my_pushbutton.h
。如果它错了,请更改它。我的自定义插件做工不错使用下面的代码。在这个例子中,命名空间不仅用于插件,而且还用于继承插件的类。
头的插件---它可以在QDesigner使用
namespace plugin {
class MyCustomPlugin: public QObject, public QDesignerCustomWidgetInterface
{
Q_OBJECT
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
MyCustomPlugin(QObject *parent = 0);
bool isContainer() const;
bool isInitialized() const;
QIcon icon() const;
QString domXml() const;
QString group() const;
QString includeFile() const;
QString name() const;
QString toolTip() const;
QString whatsThis() const;
QWidget *createWidget(QWidget *parent);
void initialize(QDesignerFormEditorInterface *core);
private:
bool initialized;
};
}
CPP文件该插件
实现类像往常一样,但下面的方法都必须考虑到帐户名称空间:
QString MyCustomPlugin::domXml() const
{
return "<widget class=\"plugin::MyCustomClass\" name=\"mycustomclass\">\n"
...
}
QString MyCustomPlugin::name() const
{
return "plugin::MyCustomClass";
}
QWidget *MyCustomPlugin::createWidget(QWidget *parent)
{
return new plugin::MyCustomClass(parent);
}
Q_EXPORT_PLUGIN2(mycustomplugin, plugin::MyCustomPlugin)
MyCustomClass
namespace plugin {
class QDESIGNER_WIDGET_EXPORT MyCustomClass: public MyCustomPlugin
{
Q_OBJECT
public:
MyCustomClass(QWidget * parent = 0) {}
};
}
您正在使用哪个版本的Qt?我认为我必须使用旧版本,因为做你说的不起作用。 – 2010-09-02 16:48:58
现在,Qt 4.6和Qt Creator 2.0,但我记得这也适用于旧版本。 – andref 2010-09-03 00:29:44
这在4.7.1中适用于我。谢谢。 – cweston 2011-01-04 02:36:46