Python 是一种胶水语言,可以非常方便的粘合各种模块,比如C++,C等。
由于项目需要,我需要使用Qt设计界面,以Python脚本来控制一个二维的位移平台的移动。其中位移控制卡提供了一个DLL文件,用于平台控制。
下面是我的步骤:
1,在Qt中设计UI。
打开Qt Designer ,新建一个Form
这样你就可以开始设计你的程序UI界面了。设计完成后保存为xxx.ui。记得将控件的名称修改自己熟悉的命名,以便于在Python中使用SIGNAL/SLOT关联。
2,编译ui文件,以供Python调用。
在命令提示行,切换到ui文件所在目录。
输入编译命令:
pyuic4 -o xxx.py xxx.ui
得到python调用需要的xxx.py文件。
3,Python编写控制程序。
import ui #导入ui界面 import os import sys from ctypes import * #控制板提供了dll提供API,需要使用windll对象和c_double类型转换(python弱类型,C程序强类型) from PyQt4.QtCore import SIGNAL from PyQt4.QtGui import QDialog,QApplication,QWidget class MPCDialog(QDialog): def __init__(self,parent=None): self.dll = None QWidget.__init__(self,parent) self.ui = ui.Ui_Dialog() self.ui.setupUi(self) self.setWindowTitle(" xxx ") self.connect(self.ui.btn_up,SIGNAL('clicked()'),self.BtnUp_Clicked) …… …… …… self.connect def BtnUp_Clicked(self): …… …… …… def BtnConnect_Clicked(self): try: self.dll = windll.LoadLibrary('xxx.dll') self.dll.xxx() self.dll.xxx() print('Have loaded dll') except Exception as e: print(e) def BtnFree_Clicked(self): pass if __name__=='__main__': app = QApplication(sys.argv) win = xxxDialog() win.show() sys.exit(app.exec_())
基本完成了程序。最终结果如下:
在实验平台上测试通过,能够正确控制平台的移动方向。