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

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一区特黄| 欧美视频国产精品| 午夜电影亚洲| 性欧美办公室18xxxxhd| 在线播放中文一区| 亚洲国产精品久久久久秋霞不卡| 欧美α欧美αv大片| 麻豆成人综合网| 99re6这里只有精品| 一区二区三区欧美亚洲| 国产麻豆精品久久一二三| 久久人人超碰| 国产亚洲欧美日韩一区二区| 久久久久一区二区三区四区| 久久天堂国产精品| 99视频精品全国免费| 中文久久乱码一区二区| 国内精品一区二区| 亚洲黄色精品| 国产嫩草一区二区三区在线观看 | 欧美在线免费观看| 激情综合激情| 99re6热在线精品视频播放速度| 国产女人aaa级久久久级| 欧美成人亚洲成人| 国产精品高潮呻吟视频| 另类激情亚洲| 国产精品你懂的在线| 欧美成人精品一区二区三区| 欧美视频免费在线观看| 久久综合久久88| 国产精品久久久久久久久免费桃花 | 亚洲少妇自拍| 久久久久一区| 久久xxxx精品视频| 欧美精品久久久久久久| 久久人人爽人人| 国产精品av久久久久久麻豆网| 麻豆成人在线| 国产亚洲a∨片在线观看| 亚洲人成人99网站| 韩国一区二区三区美女美女秀| 一区二区免费在线视频| 亚洲精品久久久久久久久久久久 | 麻豆精品精华液| 久久久久欧美| 国产日韩欧美日韩| 一区二区三区四区国产精品| 亚洲日本在线观看| 麻豆精品国产91久久久久久| 久久视频在线免费观看| 国产日本欧美视频| 在线视频精品一区| 亚洲深夜福利视频| 欧美日本韩国一区二区三区| 亚洲国产精品va在线看黑人动漫| 激情丁香综合| 久久九九国产| 狼人社综合社区| 国产在线视频不卡二| 亚洲免费在线观看| 亚洲欧美日韩一区二区在线| 欧美涩涩视频| 亚洲性xxxx| 欧美一区国产二区| 国产日韩欧美高清| 久久国产精品99国产| 国产亚洲精久久久久久| 久久综合电影| 激情久久综合| 美日韩丰满少妇在线观看| 欧美大片免费观看在线观看网站推荐| 欧美黄在线观看| 亚洲韩国青草视频| 欧美日本韩国| 亚洲在线观看免费视频| 午夜精品久久久久久久久久久久久| 欧美日韩小视频| 亚洲在线一区二区| 久久亚洲综合网| 在线观看91久久久久久| 欧美国产一区在线| 一区二区三区视频免费在线观看| 亚洲欧美日本精品| 国产在线不卡视频| 欧美成年人视频| 一本色道婷婷久久欧美| 久久精品视频免费| 亚洲黄网站在线观看| 欧美日韩国产一区二区| 午夜在线不卡| 亚洲国产欧美一区二区三区同亚洲| 99国内精品| 国产精品伦子伦免费视频| 久久精品免费播放| 一本久道久久久| 久久久噜久噜久久综合| 99精品免费视频| 国产日韩在线看| 欧美大胆a视频| 亚洲综合第一页| 亚洲电影在线观看| 久久经典综合| 一区二区三区成人| 韩国三级在线一区| 国产精品video| 快播亚洲色图| 亚洲天堂成人| 国产精品视频一| 另类春色校园亚洲| 亚洲欧美国产77777| 亚洲黄色一区二区三区| 久久精精品视频| aa国产精品| 亚洲国产欧美一区| 国产日韩在线看| 欧美精品成人在线| 久久久久九九视频| 亚洲综合色婷婷| 亚洲另类自拍| 欧美国产日韩在线| 久久人人97超碰精品888| 性色av一区二区三区红粉影视| 日韩一二三区视频| 亚洲青色在线| 亚洲国产精品高清久久久| 国产日韩一区二区三区在线播放| 欧美片第一页| 欧美国产视频一区二区| 蜜桃av久久久亚洲精品| 久久婷婷影院| 久久久久国产精品人| 亚洲综合色婷婷| 亚洲视频精选| 亚洲无线视频| 亚洲一区二区精品在线观看| 日韩视频一区二区三区在线播放| 欧美成人a∨高清免费观看| 免费成人av在线| 久久一区中文字幕| 久久青青草综合| 蜜桃av噜噜一区| 国产一区二区三区四区在线观看| 红桃视频国产精品| 久久日韩精品| 欧美激情亚洲综合一区| 亚洲男人影院| 亚洲色诱最新| 亚洲狼人综合| 激情欧美一区二区| 国产精品一级久久久| 欧美专区在线播放| 久久av二区| 老司机成人在线视频| 亚洲一区综合| 午夜精品国产精品大乳美女| 亚洲综合第一| 欧美专区在线| 欧美 日韩 国产 一区| 99精品国产在热久久| 亚洲国产视频直播| 日韩视频一区二区在线观看| 一区二区黄色| 午夜精品一区二区在线观看 | 亚洲综合好骚| 亚洲天堂av综合网| 欧美在线视频播放| 美女主播精品视频一二三四| 亚洲黄一区二区| 亚洲欧洲一区二区三区在线观看 | 久久综合九色综合欧美狠狠| 久久躁狠狠躁夜夜爽| 亚洲二区免费| 一本色道久久综合精品竹菊| 亚洲欧美日韩视频二区| 久久蜜桃av一区精品变态类天堂| 噜噜爱69成人精品| 欧美日韩精品免费| 国产日韩免费| 91久久国产自产拍夜夜嗨| 亚洲精选视频免费看| 午夜精品一区二区三区四区| 欧美国产视频在线| 亚洲午夜免费福利视频| 久久久视频精品| 国产精品高潮粉嫩av| 亚洲国产aⅴ天堂久久| 亚洲欧美韩国| 亚洲高清精品中出| 欧美一区二区三区在线视频| 欧美日韩综合不卡| 亚洲第一在线| 欧美一区亚洲一区| 一本久久综合亚洲鲁鲁| 麻豆精品在线视频| 国产午夜精品麻豆| 亚洲欧美成人综合| 亚洲精品欧美|