现在的位置: 首页 > 综合 > 正文

基于PyQt(Python+QT)的gui程序开发

2019年01月13日 ⁄ 综合 ⁄ 共 1840字 ⁄ 字号 评论关闭

最近帮朋友做了一个将文本文件按条件导出到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, 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")

得到的效果如图所示:

然后就是定义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可以迅速的开发出自己想要的小工具,是一个不错的方法

 

 

抱歉!评论已关闭.