python GUI编程(PyQt)系列:初识GUI代码

  前面我们介绍了python界面编程的软件安装以及配置,在学完前面两节之后,我们就可以着手进行界面设计和代码编写了,本节开始我们就来逐步解开python界面编程的神秘面纱!

  我们这里以建立MainWindow为例,在打开Qt Designer的时候选择MainWindow,然后点击Create后即可建立一个MainWindow对象,如下图所示:

  建立MainWindow界面首先:建立MainWindow后根据需要拖入对应的对象,如下图所示,在这个MainWindow中加入了两个text Edit文本框,五个Push button按钮,然后根据自己的需要分别修改对应的对象名称和显示名称。

  MainWindow示例添加完成后将其保存为以.ui为后缀的文件(改文件另存到你建立的项目中,如果直接保存的话,是保存到了PyQt5_Tools的路径里面去了,和designer在同一目录),我这里将其保存在当前应用的一个项目中,名字为bom_compare.ui。保存成功后再打开pycharm界面,即可看到该文件。如下图:

  在项目中显示的.ui文件其次,将对应的.ui文件生成python文件(.py):该过程其实比较简单,就是在项目中找到对应的.ui文件,然后右键单击改文件,找到并点击pyUIC,即可将对应的.ui文件生成对应的.py文件(如果已经有对应的.py文件,则会对其内容进行更新,没有对应的.py文件,则新增改文件)。如下图所示:

  将.ui文件生成.py文件的方法、下面,我们来看看生成的.py文件的内容有哪些?如下图所示:

  通过.ui文件生成的.py文件所包含的内容通过.ui文件生成的.py文件所包含的内容由此我们可以看见,在生成的文件中建立了一个class Ui_MainWindow(object):

  ,里面包含两个函数(接口),包含了我们在界面设计中所输入的按钮以及编辑框所有内容。包括设计的界面大小、按钮名称等,这样我们只需要建立一个主函数文件来对这些东西进行调用以及功能补充就可以了。

  通过上述讲解,热身终于结束,开始我们代码编写之旅。

  首先,我们需要建立一个main函数文件,名字自己任意取,在该文件中,按照变现python文件的习惯,将编写代码所需要的各个模块导入,如下图所示:

  主要功能文件的讲解1然后就是代码实操部分了,首先我们要定义一个类,将界面文件和实际功能连接起来,当然,开始时别忘记初始化函数,以下是代码示例:

  # =============================================================================# # 对各种功能进行定义# =============================================================================class MainFunc(QMainWindow, bom_compare.Ui_MainWindow):#初始化函数def __init__(self):QMainWindow.__init__(self)self.setupUi(self)self.BOMfilecompare.clicked.connect(self.compare_excel)self.open_file1.clicked.connect(self.getcompFileName1)self.open_file2.clicked.connect(self.getcompFileName2)self.open_result_file.clicked.connect(self.open_file)self.clear_result_file.clicked.connect(self.clear_file)

  初始化函数最主要的目的就是指明哪个按钮(也可以是其他功能键)连接到那个函数,前面self.后面的相当于是按键名称,括号里面self.后面的是指定的连接函数,通过链接函数来实现各种功能。

  当各种功能都实现了之后,最后就要通过如下函数来调用整个函数的过程了,具体代码如下(MainWindow 的调用示例):

  if __name__ == '__main__':app = QApplication(sys.argv)MainWindow = MainFunc() # 新建窗口MainWindow.show() # 显示sys.exit(app.exec_())

  当然,光是上面部分的内容是不足以支撑该项目的运行的,因为还没有在

  MainFunc(QMainWindow, bom_compare.Ui_MainWindow)中

  加入getcompFileName1、compare_excel这些函数的代码,等加入了之后才能够实现相应的功能,我们将在下一节做介绍!

  喜欢类似的内容,就多多点赞关注鼓励一下吧,祝各位生活愉快!

  举报/反馈