小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python 中使用 Qt 玩玩客戶端應(yīng)用程序的開發(fā)

 flyk0tcfb46p9f 2018-04-22

最近 Qt 團隊發(fā)了一篇文章( http://blog./blog/2018/04/13/qt-for-python-is-coming-to-a-computer-near-you/ )表示要進行 PySide2 的開發(fā),也就是為 Qt 提供 Python 語言的接口。當然,以前也有個項目 PySide ,但是只支持 Qt 4 。PySide2 支持 Qt 5 。至于語言層面,PySide2 支持 Python 2.7 以及 Python 3.4 到 Python 3.6 。

安裝 Qt 庫

根據(jù)你對應(yīng)的平臺下載相應(yīng)的 wheel 文件

Win 平臺以及 Linux 平臺

macOS 平臺

然后 pip install <下載的文件名>

比如我下載的是 macOS 下的,我執(zhí)行的是

pip install PySide2-5.11.0a1-5.11.0-cp36-cp36m-macosx_10_11_intel.whl

Hello, World!

新建 Python 文件,內(nèi)容如下

上面的代碼創(chuàng)建了一個應(yīng)用對象 app 以及在其上的標簽對象 label 。當你執(zhí)行 app.exec_() 時,PySide2 的事件輪詢就開始了。因為我們沒有指定 app 以及 label 的大小,所以當我們執(zhí)行這段代碼時,我們會看到應(yīng)用程序的窗口剛好能包裹標簽里的文字。

這個例子有點單調(diào),下面我們做個稍微有點交互的。

添加事件處理

PySide2 的事件處理涉及到信號與插槽(Signals and Slots)的概念,這里不深入說明,有興趣的可以參考文檔 http://doc./qt-5/signalsandslots.html 。

下面看個例子

上面的代碼是在同一個文件中。這里為了看的效果好一點,我分開截的圖。

這里我們通過 QLineEdit 和 QPushButton 分別創(chuàng)建了一個輸入框和一個按鈕,然后把這兩個組件放在了 QVBoxLayout 容器組件中。當容器組件的大小和位置發(fā)生變化時,容器里面的組件的大小和位置也會發(fā)生變化。因此,我們使用了垂直方向的布局組件,剛好能讓布局里面的組件能夠疊起來。

最后,我們將按鈕的點擊事件與 greetings() 方法綁定,當按鈕每次被點擊時,對應(yīng)的方法就會執(zhí)行。這個例子中,當按鈕被點擊時,程序會讀取輸入框中的內(nèi)容并在控制臺上進行打印。運行界面類似這樣

編寫一個表單界面

我們最終編寫的界面類似這樣

代碼如下

同樣,上面的代碼在同一個文件中。我們使用了多種布局去排列組件。最頂層我們使用的是 QVBoxLayout 組件,內(nèi)層使用的是 QHBoxLayouts 組件。添加標簽以及輸入框相關(guān)代碼比較類似,這里不做更多說明。

小結(jié)

本文沒有涉及過多的技術(shù)原理,只是簡單的介紹了下基礎(chǔ)的用法,有興趣的朋友可以去看看官方文檔。此外,我更想說明的是,這次 Qt 團隊重新拾起了 PySide 的開發(fā),這個行動可能會激起其它開發(fā)者對 Python UI 框架的開發(fā)熱情。不管怎么樣,對 PySide 以及 Python 客戶端應(yīng)用的開發(fā)的發(fā)展我還是比較看好的。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多