【玩转GIS开发】3 - 创建Python工程,包括控制台和基于QT的图形化应用(提供标准开发模板)

本文介绍如何在PyCharm中创建python工程,有关python开发环境的安装参考前两节内容。

一、新建python工程

1,打开PyCharm

2,点击“File”菜单中的“New Project...”

3,在弹出的“New Project”界面中,做如下操作:

  • 第1步:选择“pure python”;
  • 第2步:设置工程存储路径,根据个人实际情况填写;
  • 第3步:设置Project Interpreter,选择“Existing interpreter”,选择之前安装的python.exe文件。

4,工程创建完毕后,在“Project”窗口中,右键点击工程名,选择“New”,选择“Python File”,为文件命名,创建py文件

 5,在py文件中编写python代码

二、控制台应用(Console)

控制台应用比较简单,定义方法或类,在程序入口处调用方法或类对象的方法,如下图:

 示例代码:

import time

# 定义方法
def say(msg):
    print(msg)

# py文件执行入口
if __name__=='__main__':
    # 使用方法
    say('Hello World!')
    time.sleep(2)
    say('我爱你,中国!')

三、图形化应用(GUI)

可以使用PyQt或PySide来制作python程序的GUI,由于PyQt使用了GPL协议,使用PyQt开发的程序需要开源,而PySide使用的是LGPL协议,使用PySide开发的程序可以闭源,综合考虑,推荐使用PySide创建python图形化应用。

本文使用PySide2,使用前先用“pip install pyside2”进行库的安装。


在进行图形化应用开发之前,需要在PyCharm中配置4个“External Tools”(外部工具):新建QT界面、编辑QT界面、UI文件转PY和QRC文件转PY。

“External Tools”的操作入口为:File菜单->Setting->Tools->External Tools

1,配置“新建QT界面”工具,该工具用于在QT Designer中新建ui文件,配置参数如下:

Name:新建QT界面

Program:选择python安装目录下Scripts目录下的“pyside2-designer.exe”文件

Arguments:不填

Working directory:$FileDir$

 2,配置“编辑QT界面”工具,该工具用于编辑Python工程中已有的ui文件,配置参数如下:

Name:编辑qt界面

Program:选择python安装目录下Scripts目录下的“pyside2-designer.exe”文件

Arguments:$FilePath$

Working directory:$FileDir$

  3,配置“UI文件转PY”工具,该工具用于将ui文件转化为py文件,配置参数如下:

Name:UI_2_PY

Program:选择python安装目录下Scripts目录下的“pyside2-uic.exe”文件

Arguments:$FileName$ -o ui_$FileNameWithoutExtension$.py

Working directory:$FileDir$

  4,配置“QRC文件转PY”工具,该工具用于将qrc资源文件转化为py文件,配置参数如下:

Name:QRC_2_PY

Program:选择python安装目录下Scripts目录下的“pyside2-rcc.exe”文件

Arguments:$FileName$ -o $FileNameWithoutExtension$_rc.py

Working directory:$FileDir$


下面正式开始Python的图形化应用开发,开发步骤可总结为4步骤

  1. 在QT Designer中进行ui文件设计
  2. 将ui文件转换成py文件
  3. 对py中的类进行包装,在包装类中进行ui界面控制和事件驱动代码的编写
  4. 编写GUI程序的执行入口,在其中实例化包装类并显示

接下来详细说明每一步的内容。

1,在QT Designer中进行ui文件设计

在“Project”窗口中,右键工程名,选择“External Tools”,选择“新建QT界面”,打开QT Designer界面,选择"Main Window"点击创建

 调整下窗体大小,在其中拖入QTextEdit和QPushButton控件,调整下ObjectName和Text属性,如下图:保存为MainWindow.ui文件

2,将ui文件转换成py文件 

在“Project”窗口中,右键点击“MainWindow.ui”文件,选择“External Tools”,选择“UI_2_PY”命令,如下图:

 在“Project”窗口中自动生成“Ui_MainWindow.py”文件,如下图:

 3,对py中的类进行包装,在包装类中进行ui界面控制和事件驱动代码的编写

在工程中新建一个 MainWindow.py空白文件

在该文件中,创建一个继承自QMainWindow的MainWindow类,并在该类的初始化代码中创建一个Ui_MainWindow类对象,对该对象执行setupUi操作,如下图:

 标准模板代码

from PySide2.QtWidgets import QMainWindow
from Ui_MainWindow import Ui_MainWindow

# Ui_MainWindow类的包装类
class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.dockwidget=Ui_MainWindow()
        self.dockwidget.setupUi(self)

在MainWindow类的基本框架下编写其他代码,以实现Ui_MainWindow窗体子控件界面控制和控件事件响应,如下图:

示例代码

import sys
from PySide2.QtWidgets import QMainWindow, QMessageBox
from Ui_MainWindow import Ui_MainWindow

# Ui_MainWindow类的包装类
class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.dockwidget=Ui_MainWindow()
        self.dockwidget.setupUi(self)

        self.__init_control_state()
        self.__init_control_callback()

    # 初始化界面控件状态
    def __init_control_state(self):
        self.dockwidget.txt_info.setReadOnly(True)

    # 管理各控件事件回调
    def __init_control_callback(self):
        self.dockwidget.btn_ok.clicked.connect(self.__okbtn_clicked_callback)

    # 按钮点击事件回调
    def __okbtn_clicked_callback(self):
        QMessageBox.information(self,'提示','程序运行正常')

 4,编写GUI程序的执行入口,在其中实例化包装类并显示

在工程中新建一个 AppEntry.py空白文件

在该文件中,编写图形化应用程序入口,如下图:

标准模板代码

import sys
from PySide2.QtWidgets import QApplication
from MainWindow import MainWindow

if __name__=='__main__':
    app=QApplication(sys.argv)

    window=MainWindow()
    window.show()

    sys.exit(app.exec_())

点击Run,效果如下:

本节完毕! 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空worker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值