當前位置:
首頁 > 最新 > 利用pyqt來編寫屬於自己的python Gui界面

利用pyqt來編寫屬於自己的python Gui界面

本人是做介面測試的,而很多介面現在對於安全方面有了很大的重視,所以往往在介面層上做了一些加密,比如MD5、AES、SHA之類的加密,而每次加密,都是自己利用python編寫腳本而生成sign值,這往往對於自己在工具效率上無法提高,所以就產生了自己編寫一個簡單的加密+請求介面的小工具的想法。

因為本人現在主要是以python為主,所以在選擇的時候,就從這方面入手。許多人在學習如何創建一個 GUI 應用的時候都感到十分的困難。其中最重要的原因是,他們不知道應該從何下手。大多數的教程都只有文字,但事實上僅僅依靠文字很難學會 GUI 編程,因為 GUI 應用大多數都是基於視覺上的。

本篇文章,主要是分享下自己在編寫這個小工具過程中的心得。做出來的效果如下:

工具效果圖

做出來的雖然有點簡陋,但是可以做為借鑒、完善,接下來就是工具製作的方法:

1、Gui界面的製作

首先要先安裝python環境,然後再eric6,涉及到這些環境的安裝可以自行百度去尋找方法,在此不會涉及到環境安裝的方法,環境安裝完成後,打開QT Designer(在eric6根目錄下點擊eric6.pyc或者在python根目錄下點擊打開eric.bat):

QT Designer

打開QT Designer後,選擇Main Window,點擊創建:

創建Main Window

創建好你的MainWindow後:

MainWindow

在MainWindow界面的右邊QObject,那就是定義這個對象的名字的地方。這個名字將是我們通過 Python 代碼調用到這個對象的變數名,所以請盡量取一個有意義的名稱。

設計完成你的界面後,點擊保存,將會生成得到xxx.ui文件,這個文件可以通過cmd打開ui文件所在的路徑,然後通過pyuic4 xx.ui > xx.py 可以得到xx.py文件:

生成的py文件

2、編寫代碼

Qt 代碼是面向對象的,並且簡單易學。所有我們添加的組件都是一個對象,並且都擁有自己的方法比如toPlainText()(用來讀取輸入框中的值)。這讓它使用起來非常方便。

在你編寫代碼之前,你必須要使用一些函數來進行配置。可以通過官方的常式(以及網上的一些教程)中總結出了這一小段代碼來進行配置。

這些代碼非常有用,每當你想要創建一個新的 PyQt 項目的時候,就在這段代碼的基礎上添加你自己的代碼吧。

這段代碼如下:

其中需要注意的是:

你需要在這裡填入你先前創建的文件的地址,即就是之前生成的ui文件。這個文件將會被內置的函數載入:

再看下這段代碼:

這段主程序創建了一個新的 Qt Gui 應用。,每個 QT 應用都可以通過命令行進行配置,所以必須傳入sys.argv 參數。不過現在我們用不到這個。最後,我們創建了一個MyApp類,這個類繼承於 Qt 庫並且調用了父類的初始化函數:

你不一定非得要了解這些代碼的細節。你只需要在它的基礎上繼續開發就好了。

但是最好不需要這樣導入ui文件為前提下進行開發,而是直接生成py文件基礎上進行開發,因為你後續還需要生成exe文件,至於怎樣實現你的功能,這部分代碼可以看看自己的需求了,怎麼寫就怎麼寫了:

以上為部分代碼,只提供為參考

這段代碼有什麼用?還記得我們把按鈕命名為了calc_tax_button 嗎?(這是這個按鈕對象的名字,不是按鈕上顯示的提示字元串。)clicked 是一個內置的函數,當有按鈕被點擊的時候它會被自動調用(很神奇吧)。所有的 QT 組件都有特定的函數,你可以通過 Google 來查看詳細。這段代碼的最後部分是connect(self.CalculateTax)。這意味著這個按鈕會被鏈接到一個叫做self.CalculateTax 的函數,這樣以後每當用戶按下這個按鈕的時候,這段代碼都會被調用。

下面介紹一些獲取控制項的值和給控制項賦默認值的方法:

mainwindow.lineEdit.setText((u"zg 額外abc")) #給輸入框賦值

mainwindow.textEdit.setPlainText("") #給texedit賦值

mainwindow.comboBox.setCurrentIndex(2) #給下拉框賦值

mainwindow.checkBox.setChecked(1) #給複選框checkbox賦值,可以填寫True或者False 或0 ,1

print unicode(QString(mainwindow.lineEdit.text())) #獲取輸入框的值

unicode(QString(mainwindow.textEdit.toPlainText()))#獲textedit的值

print unicode(QString(mainwindow.comboBox.currentText()))#獲取下拉框的值

print mainwindow.comboBox.currentIndex() #獲取下拉框的index

if mainwindow.checkBox.isChecked()==True 獲取複選框checkbox的值

好了,關於pyqt這塊的,先寫到這裡,我也是剛剛利用這個春節的時間來琢磨完成的,不過還是需要再深入學習。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 片白科技 的精彩文章:

為什麼中國的航天員被稱為航天英雄?

TAG:片白科技 |