http://www.softpedia.com/get/Programming/Other-Programming-Files/Python-x-y.shtml#download
本教程使用的是2.7.5.0版本
(1)简单介绍
软件包包括几部分内容:
IPython 一个非常类似matlb中刚打开所看见的命令行界面。软件包中包含两个,一个基于shell,一个基于Qt
IDLE 同上。由python的创始人编写,作为一个简单的IDE。
上述三个均可以打开python模块。类似matlab中的脚本,进行执行。
spyder是一个近乎模仿matlab界面的python IDE。
安装软件包会附带安装MinGW32-xy。这是一个在windows下GNU授权的工具集(包含比如gcc和as等程序)。
还有一个QT designer。用于编写图形界面.ui文件。注意,它产生的.ui文件实际上是一个xml。
(2)编写简单hello,world
使用任何编辑器
# -*- coding: utf-8 -*-
"""
Created on Wed Apr 08 15:02:13 2015
@author: GDL
"""
print 'Hello World'
(3)编写简单的图形界面软件
在QTdesigner内输入你想要的视图(选择widget)
使用pyuic4 -o 文件名.py 文件名.ui 命令来进行转换,上述文件名包含路径。
新建文件.py 用于写业务代码(不要改动上一步系统自动生成的.py文件)
将两个文件放在同一个工程,同一个文件夹下。
新建的文件如下
# -*- coding: utf-8 -*-
"""
Created on Wed Apr 08 17:51:34 2015
@author: GDL
"""
# -*- coding: utf-8 -*-
from PyQt4 import QtGui
from SoundEffect import Ui_Form
class Widget(QtGui.QWidget, Ui_Form):
"""QtGui.QWidget和界面设计时选择的类型一致"""
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setupUi(self) # Ui_Form.setupUi
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
widget = Widget()
widget.show()
sys.exit(app.exec_())
其中,请将SoundEffect改为你的ui文件转化过来的.py文件名。
点击运行即可。
如果要连接信号和槽
请在init函数后面添加如下语句。
from PyQt4 import QtGui,QtCore
from SoundEffect import Ui_Form
class Widget(QtGui.QWidget, Ui_Form):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setupUi(self) # Ui_Form.setupUi
@QtCore.pyqtSignature("")
def on_pushButton_clicked(self):
self.label.setText('Hello PyQt4')
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
widget = Widget()
widget.show()
sys.exit(app.exec_())
新加的函数和槽的连接语句命名规则是on_对象名_信号名。
以上摘抄自http://jimmykuu.sinaapp.com/blog/11
(4)文件的读取
在上述程序中实现一个功能,也就是读取一个文本文件。
将上述信号处理函数修改为
def on_pushButton_clicked(self):
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
self.label.setText(all_the_text)
(5)音频文件的播放
在文件头补充为
import winsound
在上述函数修改为
def on_pushButton_clicked(self):
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
self.label.setText(all_the_text)
soundfile = 'test.wav'
winsound.PlaySound(soundfile,winsound.SND_FILENAME|winsound.SND_ASYNC)