[英]Promote to custom widget in a namespace
我在命名空間MyNameSpace中有MyCustomWidget
namespace MyNameSpace{
class MyCustomWidget : public QWidget{
};
}
如何在UI表單中將QWidget提升為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) {}
};
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.