<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Segoe UI","sans-serif";
        color:windowtext;
        font-emphasize:none;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-family:"Segoe UI","sans-serif"">I am working on exporting the API from C++ to python to test Qt GUI.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Segoe UI","sans-serif"">In the .sip file, I use fake class definition. Symbols definitions are got from GUI after it is launched so I don’t have to export all the dependent libraries. But it doesn’t work for utility
 functions which does not rely on any classes.  Exporting flow are successful but when import the exported module, it says cannot find symbols definition.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Segoe UI","sans-serif"">Here is what the sip file like:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Segoe UI","sans-serif""><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">// not a module, must be included in another sip file<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">// Utility funtions to handle chartplot object<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">namespace lib {<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">namespace infra {<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">namespace chartplot {<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">// Lines between %TypeHeaderCode…%End are Fake definitions.<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">%TypeHeaderCode<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">namespace lib {<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">namespace infra {<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">namespace chartplot {<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">class ChartPanelBase;<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">int getXCoor(lib::infra::chartplot::ChartPanelBase* chartPanel, double v);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">int getYCoor(lib::infra::chartplot::ChartPanelBase* chartPanel, double v);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">double getXValue(lib::infra::chartplot::ChartPanelBase* chartPanel, int xCoor);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">double getYValue(lib::infra::chartplot::ChartPanelBase* chartPanel, int yCoor);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">} // namespace chartplot<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">} // namespace infra<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">} // namespace lib<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">%End<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">int getXCoor(lib::infra::chartplot::ChartPanelBase* chartPanel, double v);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">int getYCoor(lib::infra::chartplot::ChartPanelBase* chartPanel, double v);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">double getXValue(lib::infra::chartplot::ChartPanelBase* chartPanel, int xCoor);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">double getYValue(lib::infra::chartplot::ChartPanelBase* chartPanel, int yCoor);<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">}; // namespace chartplot<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">}; // namespace infra<o:p></o:p></span></p>
<p class="MsoNormal" style="background:#EEECE1"><span style="font-family:Consolas">}; // namespace lib<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Segoe UI","sans-serif""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Segoe UI","sans-serif""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Segoe UI","sans-serif"">Any help?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Segoe UI","sans-serif""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Segoe UI","sans-serif"">Best Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Segoe UI","sans-serif"">Frost Ming<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
-- The information contained in this communication and any attachments is confidential and may be privileged, and is for the sole use of the intended recipient(s). Any unauthorized review, use, disclosure or distribution is prohibited. Unless explicitly stated
 otherwise in the body of this communication or the attachment thereto (if any), the information is provided on an AS-IS basis without any express or implied warranties or liabilities. To the extent you are relying on this information, you are doing so at your
 own risk. If you are not the intended recipient, please notify the sender immediately by replying to this message and destroy all copies of this message and any attachments. The sender nor the company/group of companies he or she represents shall be liable
 for the proper and complete transmission of the information contained in this communication, or for any delay in its receipt.
</body>
</html>