最近 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ā)展我還是比較看好的。 下載的文件名> |
|
來自: flyk0tcfb46p9f > 《AI》