青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

eryar

PipeCAD - Plant Piping Design Software.
RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
posts - 603, comments - 590, trackbacks - 0, articles - 0

Qt Python Scriptable Application

Posted on 2020-02-24 14:56 eryar 閱讀(4541) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE6.Others

 

Qt Python Scriptable Application

eryar@163.com

 

Abstract. Python and C++ are in many ways as different as two languages could be: while C++ is usually compiled to machine-code, Python is interpreted. Python's dynamic type system is often cited as the foundation of its flexibility, while in C++ static typing is the cornerstone of its efficiency. C++ has an intricate and difficult compile-time meta-language, while in Python, practically everything happens at runtime.

 

Key Words. Qt, Python, Shiboken2, PySide2

1 Introduction

Python和C++是兩種不同的開發(fā)語言:C++通常編譯成機器碼,而Python是解釋型的。Python的動態(tài)類型系統(tǒng)是它靈活性的基礎,而C++的靜態(tài)類型運行效率高。對于許多程序員來說,讓Python和C++互為補充來進行程序開發(fā)是很完美的。Python程序的性能瓶頸可以用C++來重寫;C++程序選擇Python作為中間腳本語言,可以為程序提供方便地集成和擴展能力,即支持程序二次開發(fā),方便為程序定制功能。

2 Shiboken2

Shiboken2是一個為C/C++庫生成CPython綁定代碼的生成器,用來創(chuàng)建PySide的模塊,換句話說,Shiboken可以用來暴露Qt C++API給Python。

Shiboken使用ApiExtractor庫來分析所有的Qt頭文件。由于使用的clang,不依賴Qt,所以Shiboken也可用于將非Qt的C++項目。并且Shiboken有一個類型系統(tǒng)Typesytem,基于XML文件。

 

 

編譯PySide的前提條件就是先要編譯出Shiboken。當成功編譯PySide后,就會生成Shiboken等類庫。既然使用Shiboken可以將Qt的C++對象暴露給Python,那么如何將C++和Python結合起來,生成一個支持Python腳本的程序呢?

在PySide2的例子文件夾中提供了兩個例子:

l  SampleBinding:暴露非Qt的C++對象給Python;

l  ScriptableApplication:支持腳本的程序示例;

如何編譯這兩個例子,在其中的ReadMe.md中都有詳細說明,主要是配置好PySide2,Shiboken2等環(huán)境。其中ScriptableApplication中提供了CMake和QMake兩種編譯方式,將他們生成VS的工程可以看出,在VS項目中增加了XML文件,并將其設置成Custom Build Tool:

 

并為其配置Shiboken的一些命令選項:

 

3 ScriptableApplication Example

編譯成功程序運行截圖如下所示:

 

程序支持了Python腳本,當然也可以使用PySide來開發(fā)GUI,如下所示:

 

4 Conclusion

為C++程序提供Python腳本支持有很多開源庫可以實現(xiàn),如boost.python, pycxx等,而Qt 的PySide2使用Shiboken2來將Qt的C++類型暴露給Python,所以也可以直接使用Shiboken2來將C++類封裝成Python類。

5 References

  1. Building Hybrid Systems With Boost Python, by Dave Abrahams and Ralf W. Grosse-Kunstleve
  2. https://wiki.qt.io/Qt_for_Python/Shiboken
  3. https://doc.qt.io/qtforpython/shiboken2/contents.html
  4. https://www.qt.io/blog/2018/05/31/write-python-bindings
  5. https://code.qt.io/cgit/pyside/pyside-setup.git/tree/examples/scriptableapplication

 


為了方便大家在移動端也能看到我的博文和討論交流,現(xiàn)已注冊微信公眾號,歡迎大家掃描下方二維碼關注。
Shing Liu(eryar@163.com)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区免费| 亚洲欧美视频一区| 亚洲第一二三四五区| 日韩午夜av| 久久精品国产一区二区电影 | 日韩系列欧美系列| 久久裸体艺术| 亚洲综合大片69999| 午夜亚洲精品| 亚洲少妇中出一区| 免费在线看一区| 欧美主播一区二区三区美女 久久精品人 | 久久gogo国模裸体人体| 欧美久久精品午夜青青大伊人| 久久亚洲精品一区二区| 一区二区日韩欧美| 欧美三区在线观看| 一区二区日本视频| 99视频精品全国免费| 欧美a级在线| 亚洲国产裸拍裸体视频在线观看乱了 | 国产精品久久久久久久7电影 | 亚洲国产一区二区精品专区| 久久午夜视频| 久久久久久69| 亚洲大胆av| 欧美福利一区| 欧美激情精品久久久久久蜜臀| 最新日韩av| 日韩一级黄色片| 国产精品wwwwww| 羞羞视频在线观看欧美| 欧美亚洲在线观看| 精东粉嫩av免费一区二区三区| 久久综合九色综合欧美就去吻| 久久国产欧美| 在线看日韩av| 亚洲第一区在线观看| 久久中文欧美| 亚洲精品美女在线观看| 欧美在线免费观看亚洲| 午夜在线精品| 亚洲国产精品久久久| 亚洲大胆女人| 欧美视频中文在线看| 欧美在线三级| 欧美在线观看视频在线| 亚洲国产黄色片| 国产一区二区三区免费不卡| 欧美一区亚洲二区| 久久人体大胆视频| 一区二区三区四区五区视频| 午夜一区二区三区在线观看| 91久久午夜| 亚洲尤物在线| 亚洲人午夜精品免费| 亚洲天堂成人在线观看| 国产日韩欧美制服另类| 国产一二精品视频| 欧美国产免费| 葵司免费一区二区三区四区五区| 亚洲毛片在线观看| 亚洲欧美另类在线| 亚洲国产精品久久久久| 亚洲一区在线免费| 亚洲国产网站| 欧美一区二区性| 中文一区字幕| 久久综合导航| 欧美一区二区三区视频免费播放| 麻豆精品在线播放| 欧美中文字幕久久| 欧美日韩和欧美的一区二区| 久久天天综合| 国产精品入口福利| 亚洲精品黄网在线观看| 伊人春色精品| 亚洲欧美日本国产有色| 99视频精品全部免费在线| 欧美综合77777色婷婷| 国产午夜亚洲精品理论片色戒| 最新成人av网站| 亚洲国产二区| 久久只有精品| 老巨人导航500精品| 国产日韩一区欧美| 亚洲一区二区在| 一区二区久久| 欧美第十八页| 欧美高清免费| 亚洲第一偷拍| 久久国产乱子精品免费女| 欧美一级视频免费在线观看| 欧美日韩亚洲一区在线观看| 亚洲电影在线| 91久久久久| 欧美国产综合| 亚洲激情网站免费观看| 亚洲国产欧美日韩| 久久综合五月| 亚洲成色777777在线观看影院| 亚洲第一区色| 免费日韩视频| 亚洲国产美女| 亚洲精品在线免费| 欧美成人一区二区| 亚洲国产成人精品久久久国产成人一区| 欧美激情亚洲视频| 欧美有码视频| 久久综合久久综合久久综合| 极品av少妇一区二区| 久久夜精品va视频免费观看| 午夜精品久久久久久久白皮肤| 欧美午夜精品久久久| 91久久综合亚洲鲁鲁五月天| 99国产精品久久久久久久成人热| 欧美国产高清| aa级大片欧美三级| 欧美一区二区在线看| 国产综合在线看| 久久免费视频在线观看| 亚洲国产女人aaa毛片在线| 一区二区久久| 韩日在线一区| 欧美日韩亚洲网| 久久精品国产久精国产一老狼| 久久久蜜桃精品| 亚洲小说欧美另类婷婷| 欧美在线免费一级片| 在线国产亚洲欧美| 欧美日本精品| 久久av一区二区三区| 亚洲第一在线| 午夜精品999| 亚洲激情av在线| 国产精品视频一区二区三区| 久久综合九九| 一区二区三区黄色| 久久综合激情| 亚洲摸下面视频| 亚洲人成人一区二区三区| 国产精品亚洲аv天堂网| 另类人畜视频在线| 亚洲欧美国产日韩天堂区| 免费久久久一本精品久久区| 亚洲视频在线免费观看| 伊人成综合网伊人222| 国产精品久久久久久久久婷婷 | 久久综合九色99| 亚洲日本成人网| 久久国产精品电影| 亚洲国产精品第一区二区| 欧美日韩一级视频| 亚洲欧美亚洲| 久久久视频精品| 亚洲免费观看视频| 国产精品亚洲а∨天堂免在线| 久久免费精品视频| 欧美成人r级一区二区三区| 亚洲激情在线激情| 欧美日韩午夜| 久久婷婷久久| 一区二区国产精品| 欧美激情小视频| 欧美一区二区精品久久911| 在线精品视频一区二区三四| 国产精品成人播放| 久久精品99| 亚洲一级二级| 亚洲欧洲三级电影| 久久亚洲午夜电影| 亚洲无限av看| 亚洲国产网站| 国产一区二区三区无遮挡| 欧美日韩国产专区| 亚洲欧美视频在线观看视频| 在线视频一区观看| 亚洲黄色影院| 欧美va亚洲va国产综合| 日韩一二三区视频| 99视频一区二区| 亚洲国产免费看| 黄色成人小视频| 欧美人交a欧美精品| 欧美激情麻豆| 欧美电影免费观看网站| 久久成人精品一区二区三区| 免费成人av在线| 欧美激情精品久久久久| 久久噜噜噜精品国产亚洲综合 | 亚洲永久视频| 亚洲高清资源综合久久精品| 欧美激情无毛| 欧美黄色影院| 奶水喷射视频一区| 欧美成人激情在线| 国产免费亚洲高清| 久久精品首页| 日韩视频在线观看| 亚洲永久免费av|