本文介绍如何在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步骤:
- 在QT Designer中进行ui文件设计
- 将ui文件转换成py文件
- 对py中的类进行包装,在包装类中进行ui界面控制和事件驱动代码的编写
- 编写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,效果如下:
本节完毕!