📄 sipref.html
字号:
<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" /><title>SIP - A Tool for Generating Python Bindings for C and C++ Libraries</title><meta name="copyright" content="Copyright (c) 2006 Riverbank Computing Limited" /><link rel="stylesheet" href="default.css" type="text/css" /></head><body><div class="document" id="sip-a-tool-for-generating-python-bindings-for-c-and-c-libraries"><h1 class="title">SIP - A Tool for Generating Python Bindings for C and C++ Libraries</h1><h2 class="subtitle" id="reference-guide">Reference Guide</h2><table class="docinfo" frame="void" rules="none"><col class="docinfo-name" /><col class="docinfo-content" /><tbody valign="top"><tr><th class="docinfo-name">Contact:</th><td><a class="first last reference" href="mailto:info@riverbankcomputing.co.uk">info@riverbankcomputing.co.uk</a></td></tr><tr><th class="docinfo-name">Version:</th><td>4.4.3</td></tr><tr><th class="docinfo-name">Copyright:</th><td>Copyright (c) 2006 Riverbank Computing Limited</td></tr></tbody></table><div class="contents topic" id="contents"><p class="topic-title first"><a name="contents">Contents</a></p><ul class="auto-toc simple"><li><a class="reference" href="#introduction" id="id22" name="id22">1 Introduction</a><ul class="auto-toc"><li><a class="reference" href="#license" id="id23" name="id23">1.1 License</a></li><li><a class="reference" href="#features" id="id24" name="id24">1.2 Features</a></li><li><a class="reference" href="#sip-v3-x" id="id25" name="id25">1.3 SIP v3.x</a></li><li><a class="reference" href="#sip-components" id="id26" name="id26">1.4 SIP Components</a></li><li><a class="reference" href="#qt-support" id="id27" name="id27">1.5 Qt Support</a></li></ul></li><li><a class="reference" href="#potential-incompatibilities-with-earlier-versions" id="id28" name="id28">2 Potential Incompatibilities with Earlier Versions</a><ul class="auto-toc"><li><a class="reference" href="#sip-v4-4" id="id29" name="id29">2.1 SIP v4.4</a></li></ul></li><li><a class="reference" href="#installing-sip" id="id30" name="id30">3 Installing SIP</a><ul class="auto-toc"><li><a class="reference" href="#downloading-sip" id="id31" name="id31">3.1 Downloading SIP</a></li><li><a class="reference" href="#configuring-sip" id="id32" name="id32">3.2 Configuring SIP</a><ul class="auto-toc"><li><a class="reference" href="#configuring-sip-using-mingw" id="id33" name="id33">3.2.1 Configuring SIP Using MinGW</a></li><li><a class="reference" href="#configuring-sip-using-the-borland-c-compiler" id="id34" name="id34">3.2.2 Configuring SIP Using the Borland C++ Compiler</a></li></ul></li><li><a class="reference" href="#building-sip" id="id35" name="id35">3.3 Building SIP</a></li></ul></li><li><a class="reference" href="#using-sip" id="id36" name="id36">4 Using SIP</a><ul class="auto-toc"><li><a class="reference" href="#a-simple-c-example" id="id37" name="id37">4.1 A Simple C++ Example</a></li><li><a class="reference" href="#id7" id="id38" name="id38">4.2 A Simple C Example</a></li><li><a class="reference" href="#a-more-complex-c-example" id="id39" name="id39">4.3 A More Complex C++ Example</a></li><li><a class="reference" href="#ownership-of-objects" id="id40" name="id40">4.4 Ownership of Objects</a></li></ul></li><li><a class="reference" href="#the-sip-command-line" id="id41" name="id41">5 The SIP Command Line</a></li><li><a class="reference" href="#sip-specification-files" id="id42" name="id42">6 SIP Specification Files</a><ul class="auto-toc"><li><a class="reference" href="#syntax-definition" id="id43" name="id43">6.1 Syntax Definition</a></li><li><a class="reference" href="#variable-numbers-of-arguments" id="id44" name="id44">6.2 Variable Numbers of Arguments</a></li><li><a class="reference" href="#additional-sip-types" id="id45" name="id45">6.3 Additional SIP Types</a><ul class="auto-toc"><li><a class="reference" href="#sip-anyslot" id="id46" name="id46">6.3.1 SIP_ANYSLOT</a></li><li><a class="reference" href="#sip-pycallable" id="id47" name="id47">6.3.2 SIP_PYCALLABLE</a></li><li><a class="reference" href="#sip-pydict" id="id48" name="id48">6.3.3 SIP_PYDICT</a></li><li><a class="reference" href="#sip-pylist" id="id49" name="id49">6.3.4 SIP_PYLIST</a></li><li><a class="reference" href="#sip-pyobject" id="id50" name="id50">6.3.5 SIP_PYOBJECT</a></li><li><a class="reference" href="#sip-pyslice" id="id51" name="id51">6.3.6 SIP_PYSLICE</a></li><li><a class="reference" href="#sip-pytuple" id="id52" name="id52">6.3.7 SIP_PYTUPLE</a></li><li><a class="reference" href="#sip-pytype" id="id53" name="id53">6.3.8 SIP_PYTYPE</a></li><li><a class="reference" href="#sip-qobject" id="id54" name="id54">6.3.9 SIP_QOBJECT</a></li><li><a class="reference" href="#sip-rxobj-con" id="id55" name="id55">6.3.10 SIP_RXOBJ_CON</a></li><li><a class="reference" href="#sip-rxobj-dis" id="id56" name="id56">6.3.11 SIP_RXOBJ_DIS</a></li><li><a class="reference" href="#sip-signal" id="id57" name="id57">6.3.12 SIP_SIGNAL</a></li><li><a class="reference" href="#sip-slot" id="id58" name="id58">6.3.13 SIP_SLOT</a></li><li><a class="reference" href="#sip-slot-con" id="id59" name="id59">6.3.14 SIP_SLOT_CON</a></li><li><a class="reference" href="#sip-slot-dis" id="id60" name="id60">6.3.15 SIP_SLOT_DIS</a></li></ul></li></ul></li><li><a class="reference" href="#sip-directives" id="id61" name="id61">7 SIP Directives</a><ul class="auto-toc"><li><a class="reference" href="#accesscode" id="id62" name="id62">7.1 %AccessCode</a></li><li><a class="reference" href="#bigetcharbuffercode" id="id63" name="id63">7.2 %BIGetCharBufferCode</a></li><li><a class="reference" href="#bigetreadbuffercode" id="id64" name="id64">7.3 %BIGetReadBufferCode</a></li><li><a class="reference" href="#bigetsegcountcode" id="id65" name="id65">7.4 %BIGetSegCountCode</a></li><li><a class="reference" href="#bigetwritebuffercode" id="id66" name="id66">7.5 %BIGetWriteBufferCode</a></li><li><a class="reference" href="#cmodule" id="id67" name="id67">7.6 %CModule</a></li><li><a class="reference" href="#convertfromtypecode" id="id68" name="id68">7.7 %ConvertFromTypeCode</a></li><li><a class="reference" href="#converttosubclasscode" id="id69" name="id69">7.8 %ConvertToSubClassCode</a></li><li><a class="reference" href="#converttotypecode" id="id70" name="id70">7.9 %ConvertToTypeCode</a></li><li><a class="reference" href="#copying" id="id71" name="id71">7.10 %Copying</a></li><li><a class="reference" href="#doc" id="id72" name="id72">7.11 %Doc</a></li><li><a class="reference" href="#end" id="id73" name="id73">7.12 %End</a></li><li><a class="reference" href="#exception" id="id74" name="id74">7.13 %Exception</a></li><li><a class="reference" href="#exporteddoc" id="id75" name="id75">7.14 %ExportedDoc</a></li><li><a class="reference" href="#feature" id="id76" name="id76">7.15 %Feature</a></li><li><a class="reference" href="#gcclearcode" id="id77" name="id77">7.16 %GCClearCode</a></li><li><a class="reference" href="#gctraversecode" id="id78" name="id78">7.17 %GCTraverseCode</a></li><li><a class="reference" href="#getcode" id="id79" name="id79">7.18 %GetCode</a></li><li><a class="reference" href="#if" id="id80" name="id80">7.19 %If</a></li><li><a class="reference" href="#import" id="id81" name="id81">7.20 %Import</a></li><li><a class="reference" href="#include" id="id82" name="id82">7.21 %Include</a></li><li><a class="reference" href="#id14" id="id83" name="id83">7.22 %License</a></li><li><a class="reference" href="#mappedtype" id="id84" name="id84">7.23 %MappedType</a></li><li><a class="reference" href="#methodcode" id="id85" name="id85">7.24 %MethodCode</a></li><li><a class="reference" href="#module" id="id86" name="id86">7.25 %Module</a></li><li><a class="reference" href="#modulecode" id="id87" name="id87">7.26 %ModuleCode</a></li><li><a class="reference" href="#moduleheadercode" id="id88" name="id88">7.27 %ModuleHeaderCode</a></li><li><a class="reference" href="#optionalinclude" id="id89" name="id89">7.28 %OptionalInclude</a></li><li><a class="reference" href="#platforms" id="id90" name="id90">7.29 %Platforms</a></li><li><a class="reference" href="#postinitialisationcode" id="id91" name="id91">7.30 %PostInitialisationCode</a></li><li><a class="reference" href="#preinitialisationcode" id="id92" name="id92">7.31 %PreInitialisationCode</a></li><li><a class="reference" href="#raisecode" id="id93" name="id93">7.32 %RaiseCode</a></li><li><a class="reference" href="#setcode" id="id94" name="id94">7.33 %SetCode</a></li><li><a class="reference" href="#sipnoemitters" id="id95" name="id95">7.34 %SIPNoEmitters</a></li><li><a class="reference" href="#timeline" id="id96" name="id96">7.35 %Timeline</a></li><li><a class="reference" href="#typecode" id="id97" name="id97">7.36 %TypeCode</a></li><li><a class="reference" href="#typeheadercode" id="id98" name="id98">7.37 %TypeHeaderCode</a></li><li><a class="reference" href="#virtualcatchercode" id="id99" name="id99">7.38 %VirtualCatcherCode</a></li></ul></li><li><a class="reference" href="#sip-annotations" id="id100" name="id100">8 SIP Annotations</a><ul class="auto-toc"><li><a class="reference" href="#argument-annotations" id="id101" name="id101">8.1 Argument Annotations</a><ul class="auto-toc"><li><a class="reference" href="#allownone" id="id102" name="id102">8.1.1 AllowNone</a></li><li><a class="reference" href="#array" id="id103" name="id103">8.1.2 Array</a></li><li><a class="reference" href="#arraysize" id="id104" name="id104">8.1.3 ArraySize</a></li><li><a class="reference" href="#constrained" id="id105" name="id105">8.1.4 Constrained</a></li><li><a class="reference" href="#getwrapper" id="id106" name="id106">8.1.5 GetWrapper</a></li><li><a class="reference" href="#in" id="id107" name="id107">8.1.6 In</a></li><li><a class="reference" href="#out" id="id108" name="id108">8.1.7 Out</a></li><li><a class="reference" href="#transfer" id="id109" name="id109">8.1.8 Transfer</a></li><li><a class="reference" href="#transferback" id="id110" name="id110">8.1.9 TransferBack</a></li><li><a class="reference" href="#transferthis" id="id111" name="id111">8.1.10 TransferThis</a></li></ul></li><li><a class="reference" href="#class-annotations" id="id112" name="id112">8.2 Class Annotations</a><ul class="auto-toc"><li><a class="reference" href="#abstract" id="id113" name="id113">8.2.1 Abstract</a></li><li><a class="reference" href="#delaydtor" id="id114" name="id114">8.2.2 DelayDtor</a></li><li><a class="reference" href="#external" id="id115" name="id115">8.2.3 External</a></li><li><a class="reference" href="#pyname" id="id116" name="id116">8.2.4 PyName</a></li></ul></li><li><a class="reference" href="#enum-annotations" id="id117" name="id117">8.3 Enum Annotations</a><ul class="auto-toc"><li><a class="reference" href="#id17" id="id118" name="id118">8.3.1 PyName</a></li></ul></li><li><a class="reference" href="#exception-annotations" id="id119" name="id119">8.4 Exception Annotations</a><ul class="auto-toc"><li><a class="reference" href="#id18" id="id120" name="id120">8.4.1 PyName</a></li></ul></li><li><a class="reference" href="#function-annotations" id="id121" name="id121">8.5 Function Annotations</a><ul class="auto-toc"><li><a class="reference" href="#autogen" id="id122" name="id122">8.5.1 AutoGen</a></li><li><a class="reference" href="#default" id="id123" name="id123">8.5.2 Default</a></li><li><a class="reference" href="#factory" id="id124" name="id124">8.5.3 Factory</a></li><li><a class="reference" href="#newthread" id="id125" name="id125">8.5.4 NewThread</a></li><li><a class="reference" href="#noderived" id="id126" name="id126">8.5.5 NoDerived</a></li><li><a class="reference" href="#numeric" id="id127" name="id127">8.5.6 Numeric</a></li><li><a class="reference" href="#posthook" id="id128" name="id128">8.5.7 PostHook</a></li><li><a class="reference" href="#prehook" id="id129" name="id129">8.5.8 PreHook</a></li><li><a class="reference" href="#id19" id="id130" name="id130">8.5.9 PyName</a></li><li><a class="reference" href="#releasegil" id="id131" name="id131">8.5.10 ReleaseGIL</a></li><li><a class="reference" href="#id20" id="id132" name="id132">8.5.11 TransferBack</a></li></ul></li><li><a class="reference" href="#license-annotations" id="id133" name="id133">8.6 License Annotations</a><ul class="auto-toc"><li><a class="reference" href="#licensee" id="id134" name="id134">8.6.1 Licensee</a></li><li><a class="reference" href="#signature" id="id135" name="id135">8.6.2 Signature</a></li><li><a class="reference" href="#timestamp" id="id136" name="id136">8.6.3 Timestamp</a></li><li><a class="reference" href="#type" id="id137" name="id137">8.6.4 Type</a></li></ul></li><li><a class="reference" href="#variable-annotations" id="id138" name="id138">8.7 Variable Annotations</a><ul class="auto-toc"><li><a class="reference" href="#id21" id="id139" name="id139">8.7.1 PyName</a></li></ul></li></ul></li><li><a class="reference" href="#sip-api-for-handwritten-code" id="id140" name="id140">9 SIP API for Handwritten Code</a><ul class="auto-toc"><li><a class="reference" href="#sip-api-major-nr" id="id141" name="id141">9.1 SIP_API_MAJOR_NR</a></li><li><a class="reference" href="#sip-api-minor-nr" id="id142" name="id142">9.2 SIP_API_MINOR_NR</a></li><li><a class="reference" href="#sip-block-threads" id="id143" name="id143">9.3 SIP_BLOCK_THREADS</a></li><li><a class="reference" href="#sip-unblock-threads" id="id144" name="id144">9.4 SIP_UNBLOCK_THREADS</a></li><li><a class="reference" href="#sip-version" id="id145" name="id145">9.5 SIP_VERSION</a></li><li><a class="reference" href="#sip-version-str" id="id146" name="id146">9.6 SIP_VERSION_STR</a></li><li><a class="reference" href="#sipbadcatcherresult" id="id147" name="id147">9.7 sipBadCatcherResult()</a></li><li><a class="reference" href="#sipbadlengthforslice" id="id148" name="id148">9.8 sipBadLengthForSlice()</a></li><li><a class="reference" href="#sipbuildresult" id="id149" name="id149">9.9 sipBuildResult()</a></li><li><a class="reference" href="#sipcallmethod" id="id150" name="id150">9.10 sipCallMethod()</a></li><li><a class="reference" href="#sipcanconverttoinstance" id="id151" name="id151">9.11 sipCanConvertToInstance()</a></li><li><a class="reference" href="#sipcanconverttomappedtype" id="id152" name="id152">9.12 sipCanConvertToMappedType()</a></li><li><a class="reference" href="#sipclassname" id="id153" name="id153">9.13 sipClassName()</a></li><li><a class="reference" href="#sipconnectrx" id="id154" name="id154">9.14 sipConnectRx()</a></li><li><a class="reference" href="#sipconvertfrominstance" id="id155" name="id155">9.15 sipConvertFromInstance()</a></li><li><a class="reference" href="#sipconvertfrommappedtype" id="id156" name="id156">9.16 sipConvertFromMappedType()</a></li><li><a class="reference" href="#sipconvertfromnamedenum" id="id157" name="id157">9.17 sipConvertFromNamedEnum()</a></li><li><a class="reference" href="#sipconvertfromnewinstance" id="id158" name="id158">9.18 sipConvertFromNewInstance()</a></li><li><a class="reference" href="#sipconvertfromsequenceindex" id="id159" name="id159">9.19 sipConvertFromSequenceIndex()</a></li>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -