溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

關(guān)于Python+QT的gui程序開(kāi)發(fā)案例分析

發(fā)布時(shí)間:2020-07-03 13:50:56 來(lái)源:億速云 閱讀:351 作者:清晨 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹關(guān)于Python+QT的gui程序開(kāi)發(fā)案例分析,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

最近幫朋友做了一個(gè)將文本文件按條件導(dǎo)出到excel里面的小程序。使用了PyQT,發(fā)現(xiàn)Python真是一門(mén)強(qiáng)大的腳本語(yǔ)言,開(kāi)發(fā)效率極高。

首先需要引用

from PyQt4 import QtGui, uic, QtCore 

很多控件像QPushButton是從QtGui的空間中得來(lái)的,下面def __init__(self, parent=None)中定義了界面的設(shè)計(jì)及與控件相互聯(lián)系的方法。

class AddressBook(QtGui.QWidget):
  def __init__(self, parent=None):
    super(AddressBook, self).__init__(parent)
    #button控件
    self.out_put = QtGui.QPushButton("&Out_put")
    #該button在被單擊之后,調(diào)用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, 0)
    mainLayout.addWidget(self.nameLine, 0, 1)
    mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop)
    #mainLayout.addWidget(self.addressText, 1, 1)
    mainLayout.addWidget(self.filesTable, 1, 1)
    mainLayout.addLayout(buttonLayout1, 1, 2)
    self.setLayout(mainLayout)
    self.setWindowTitle("HD_export")

得到的效果如圖所示:

關(guān)于Python+QT的gui程序開(kāi)發(fā)案例分析

然后就是定義button對(duì)應(yīng)的方法。如Browse這個(gè)button對(duì)應(yīng)的方法,代碼如下:

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)

這樣當(dāng)單擊Browse這個(gè)按鈕的時(shí)候,他就會(huì)調(diào)用browse這個(gè)方法了。

Ok,這樣PyQT的用法就差不多說(shuō)完了。然后就是如果編譯這個(gè).py文件,讓他能夠生成可用的.exe.

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

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

在安裝的時(shí)候他會(huì)把cx_Freeze.bat放到\Python27\Scripts的文件夾中。

真正理解這個(gè)GUI開(kāi)發(fā),還是要自己去動(dòng)手做。使用PyQT可以迅速的開(kāi)發(fā)出自己想要的小工具,是一個(gè)不錯(cuò)的方法

以上是關(guān)于Python+QT的gui程序開(kāi)發(fā)案例分析的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI