1. 程式人生 > 程式設計 >基於Python+QT的gui程式開發實現

基於Python+QT的gui程式開發實現

最近幫朋友做了一個將文字檔案按條件匯出到excel裡面的小程式。使用了PyQT,發現Python真是一門強大的指令碼語言,開發效率極高。

首先需要引用

from PyQt4 import QtGui,uic,QtCore 

很多控制元件像QPushButton是從QtGui的空間中得來的,下面def __init__(self,parent=None)中定義了介面的設計及與控制元件相互聯絡的方法。

class AddressBook(QtGui.QWidget):
  def __init__(self,parent=None):
    super(AddressBook,self).__init__(parent)
    #button控制元件
    self.out_put = QtGui.QPushButton("&Out_put")
    #該button在被單擊之後,呼叫self.out的方法
    self.out_put.clicked.connect(self.out)
    browseButton = self.createButton("&Browse...",self.browse)
 
    nameLabel = QtGui.QLabel("Location:")
    self.nameLine = QtGui.QLineEdit()
    addressLabel = QtGui.QLabel("Loading:")
    self.addressText = QtGui.QTextEdit()
    self.createFilesTable()
 
    buttonLayout1 = QtGui.QVBoxLayout()
    buttonLayout1.addWidget(browseButton,QtCore.Qt.AlignTop)
    buttonLayout1.addWidget(self.out_put)
    buttonLayout1.addStretch()
    #介面的佈局
    mainLayout = QtGui.QGridLayout()
    mainLayout.addWidget(nameLabel,0)
    mainLayout.addWidget(self.nameLine,1)
    mainLayout.addWidget(addressLabel,1,QtCore.Qt.AlignTop)
    #mainLayout.addWidget(self.addressText,1)
    mainLayout.addWidget(self.filesTable,1)
    mainLayout.addLayout(buttonLayout1,2)
    self.setLayout(mainLayout)
    self.setWindowTitle("HD_export")

得到的效果如圖所示:

基於Python+QT的gui程式開發實現

然後就是定義button對應的方法。如Browse這個button對應的方法,程式碼如下:

def browse(self):
    directory = QtGui.QFileDialog.getExistingDirectory(self,"Find Files",QtCore.QDir.currentPath())
 
    self.nameLine.setText(directory)
    self.find()
    
  def find(self):
    self.filesTable.setRowCount(0)
    path=self.nameLine.text()
    self.currentDir = QtCore.QDir(path)
    files = self.currentDir.entryList(QtCore.QDir.Files | QtCore.QDir.NoSymLinks)
 
    self.showFiles(files)

這樣當單擊Browse這個按鈕的時候,他就會呼叫browse這個方法了。

Ok,這樣PyQT的用法就差不多說完了。然後就是如果編譯這個.py檔案,讓他能夠生成可用的.exe.

我在生成的時候,使用的是cx_Freeze,它的用法就一個命令FreezePython.exe,打包也很快捷:

cx_Freeze.bat--install-dir="/your/path/to/install" app.py

在安裝的時候他會把cx_Freeze.bat放到\Python27\Scripts的資料夾中。

真正理解這個GUI開發,還是要自己去動手做。使用PyQT可以迅速的開發出自己想要的小工具,是一個不錯的方法

到此這篇關於基於Python+QT的gui程式開發實現的文章就介紹到這了,更多相關Python QT gui程式開發內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!