我在一個命名空間了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