qwidgetfactory.html

来自「QT 下载资料仅供参考」· HTML 代码 · 共 159 行

HTML
159
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-x11-commercial-3.0.5/tools/designer/uilib/qwidgetfactory.cpp:108 --><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>QWidgetFactory Class</title><style type="text/css"><!--h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }a:link { color: #004faf; text-decoration: none }a:visited { color: #672967; text-decoration: none }body { background: #ffffff; color: black; }--></style></head><body><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr bgcolor="#E5E5E5"><td valign=center> <a href="index.html"><font color="#004faf">Home</font></a> | <a href="classes.html"><font color="#004faf">All&nbsp;Classes</font></a> | <a href="mainclasses.html"><font color="#004faf">Main&nbsp;Classes</font></a> | <a href="annotated.html"><font color="#004faf">Annotated</font></a> | <a href="groups.html"><font color="#004faf">Grouped&nbsp;Classes</font></a> | <a href="functions.html"><font color="#004faf">Functions</font></a></td><td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>QWidgetFactory Class Reference</h1><p>The QWidgetFactory class provides for the dynamic creation of widgetsfrom Qt Designer .ui files.<a href="#details">More...</a><p><tt>#include &lt;<a href="qwidgetfactory-h.html">qwidgetfactory.h</a>&gt;</tt><p><a href="qwidgetfactory-members.html">List of all member functions.</a><h2>Public Members</h2><ul><li><div class=fn><a href="#QWidgetFactory"><b>QWidgetFactory</b></a> ()</div></li><li><div class=fn>virtual <a href="#~QWidgetFactory"><b>~QWidgetFactory</b></a> ()</div></li><li><div class=fn>virtual QWidget * <a href="#createWidget"><b>createWidget</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;className, QWidget&nbsp;*&nbsp;parent, const&nbsp;char&nbsp;*&nbsp;name ) const</div></li></ul><h2>Static Public Members</h2><ul><li><div class=fn>QWidget * <a href="#create"><b>create</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;uiFile, QObject&nbsp;*&nbsp;connector = 0, QWidget&nbsp;*&nbsp;parent = 0, const&nbsp;char&nbsp;*&nbsp;name = 0 )</div></li><li><div class=fn>QWidget * <a href="#create-2"><b>create</b></a> ( QIODevice&nbsp;*&nbsp;dev, QObject&nbsp;*&nbsp;connector = 0, QWidget&nbsp;*&nbsp;parent = 0, const&nbsp;char&nbsp;*&nbsp;name = 0 )</div></li><li><div class=fn>void <a href="#addWidgetFactory"><b>addWidgetFactory</b></a> ( QWidgetFactory&nbsp;*&nbsp;factory )</div></li><li><div class=fn>void <a href="#loadImages"><b>loadImages</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;dir )</div></li></ul><hr><a name="details"></a><h2>Detailed Description</h2><p> The QWidgetFactory class provides for the dynamic creation of widgetsfrom Qt Designer .ui files.<p> This class basically offers two things:<p> <ul><p> <li> Dynamically creating widgets from <a href="designer-manual.html">Qt  Designer</a><em>Qt Designer</em> user interface description files.You can do this using the static function <a href="#create">QWidgetFactory::create</a>().This function also performs signal and slot connections, tabordering, etc., as defined in the .ui file, and returns thetop-level widget in the .ui file. After creating the widget you canuse <a href="qobject.html#child">QObject::child</a>() and <a href="qobject.html#queryList">QObject::queryList</a>() to access childwidgets of this returned widget.<p> <li> Adding additional widget factories to be able to create customwidgets. See <a href="#createWidget">createWidget</a>() for details.<p> </ul><p> This class is not included in the Qt library itself. To use it youmust link against <tt>libqui.so</tt> (Unix) or <tt>qui.lib</tt> (Windows), which isbuilt into <tt>$(QTDIR)/lib</tt> if you built <em>Qt Designer</em>.<p> See the "Creating Dynamic Dialogs from .ui Files" section of the <a href="designer-manual.html">Qt Designer manual</a> for an example. Seealso the <a href="qwidgetplugin.html">QWidgetPlugin</a> class and the <a href="plugins-howto.html">Plugins documentation</a>.<hr><h2>Member Function Documentation</h2><h3 class=fn><a name="QWidgetFactory"></a>QWidgetFactory::QWidgetFactory ()</h3> Constructs a QWidgetFactory. <h3 class=fn><a name="~QWidgetFactory"></a>QWidgetFactory::~QWidgetFactory ()<tt> [virtual]</tt></h3> Destructor.<h3 class=fn>void <a name="addWidgetFactory"></a>QWidgetFactory::addWidgetFactory ( <a href="qwidgetfactory.html">QWidgetFactory</a>&nbsp;*&nbsp;factory )<tt> [static]</tt></h3> Installs a widget factory <em>factory</em>, which normally containsadditional widgets that can then be created using a QWidgetFactory.See <a href="#createWidget">createWidget</a>() for further details.<h3 class=fn><a href="qwidget.html">QWidget</a>&nbsp;* <a name="create"></a>QWidgetFactory::create ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;uiFile, <a href="qobject.html">QObject</a>&nbsp;*&nbsp;connector = 0, <a href="qwidget.html">QWidget</a>&nbsp;*&nbsp;parent = 0, const&nbsp;char&nbsp;*&nbsp;name = 0 )<tt> [static]</tt></h3><p> Loads the <em>Qt Designer</em> user interface description file <em>uiFile</em>and returns the top-level widget in that description. <em>parent</em> and<em>name</em> are passed to the constructor of the top-level widget.<p> This function also performs signal and slot connections, tabordering, etc., as described in the .ui file. In <em>Qt Designer</em> itis possible to add custom slots to a form and connect to them. Ifyou want these connections to be made, you must create a classderived from <a href="qobject.html">QObject</a>, which implements all these slots. Then pass aninstance of the object as <em>connector</em> to this function. If you dothis, the connections to the custom slots will be done using the <em>connector</em> as slot.<p> If something fails, 0 is returned.<p> The ownership of the returned widget is passed to the caller.<h3 class=fn><a href="qwidget.html">QWidget</a>&nbsp;* <a name="create-2"></a>QWidgetFactory::create ( <a href="qiodevice.html">QIODevice</a>&nbsp;*&nbsp;dev, <a href="qobject.html">QObject</a>&nbsp;*&nbsp;connector = 0, <a href="qwidget.html">QWidget</a>&nbsp;*&nbsp;parent = 0, const&nbsp;char&nbsp;*&nbsp;name = 0 )<tt> [static]</tt></h3>  This is an overloaded member function, provided for convenience. It behaves essentially like the above function.<p> Loads the user interface description from device <em>dev</em>.<h3 class=fn><a href="qwidget.html">QWidget</a>&nbsp;* <a name="createWidget"></a>QWidgetFactory::createWidget ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;className, <a href="qwidget.html">QWidget</a>&nbsp;*&nbsp;parent, const&nbsp;char&nbsp;*&nbsp;name ) const<tt> [virtual]</tt></h3>Creates a widget of the type <em>className</em> passing <em>parent</em> and <em>name</em> to its constructor.<p> If <em>className</em> is a widget in the Qt library, it is directlycreated by this function. If the widget isn't in the Qt library,each of the installed widget plugins is asked, in turn, to createthe widget. As soon as a plugin says it can create the widget itis asked to do so. It may occur that none of the plugins cancreate the widget, in which case each installed widget factory isasked to create the widget (see <a href="#addWidgetFactory">addWidgetFactory</a>()). If the widgetcannot be created by any of these means, 0 is returned.<p> If you have a custom widget, and want it to be created using thewidget factory, there are two approaches you can use:<p> <ol type=1><p> <li> Write a widget plugin. This allows you to use the widget in<em>Qt Designer</em> and in this QWidgetFactory. See the widget plugindocumentation for further details. (See the "Creating CustomWidgets with Plugins" section of the <a href="designer-manual.html">Qt    Designer manual</a> for an example.<p> <li> Subclass QWidgetFactory. Then reimplement this function tocreate and return an instance of your custom widget if <em>className</em> equals the name of your widget, otherwise return 0. Thenat the beginning of your program where you want to use the widgetfactory to create widgets do a:<pre>    QWidgetFactory::<a href="#addWidgetFactory">addWidgetFactory</a>( new MyWidgetFactory );    </pre> where MyWidgetFactory is your QWidgetFactory subclass.<p> </ol><h3 class=fn>void <a name="loadImages"></a>QWidgetFactory::loadImages ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;dir )<tt> [static]</tt></h3>If you use a pixmap collection (which is the default for newprojects) rather than saving the pixmapswithin the .ui XML file, you must load thepixmap collection. QWidgetFactory looks in the default<a href="qmimesourcefactory.html">QMimeSourceFactory</a> for the pixmaps. Either add it theremanually, or call this function and specify the directory wherethe images can be found, as <em>dir</em>. This is normally the directorycalled <tt>images</tt> in the project's directory.<!-- eof --><hr><p>This file is part of the <a href="index.html">Qt toolkit</a>.Copyright &copy; 1995-2002<a href="http://www.trolltech.com/">Trolltech</a>. All Rights Reserved.<p><address><hr><div align=center><table width=100% cellspacing=0 border=0><tr><td>Copyright &copy; 2002 <a href="http://www.trolltech.com">Trolltech</a><td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a><td align=right><div align=right>Qt version 3.0.5</div></table></div></address></body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?