用PyQt4做的第一个小东东

最近应客户要求,需要设计一个小软件,实现计算机远程控制NAO机器人,三个按钮控制三种动作。

其实并不难,但是我想用Python和PyQt4来做,顺便练练手,也是方便与NAO机器人内部的python语言模块交互。

于是,经过一周的编写,改进,调试,终于完成了这个小东东。也作为自己的第一个PyQt4作品,小小纪念一下:)

1. 首先明确需求

    【1】主窗口有三个按钮,窗口尺寸为1280*48,是一个大长条子。副窗口用于配置机器人IP。

    【2】无线网络控制,三个按钮分别对应‘bad’,'ok', 'good'命令

    【3】最后发布成为双击启动式的软件。

2. 设计规划

    【1】既然要设计界面,和python语言相关的GUI工具也不少,首选PyQt,这是Qt为python语言实现的GUI工具。其实就是把C++做成了python语言的接口,供给python程序调用。

    【2】无线网络控制,因为功能比较简单,传输的数据量不大,所以选择UDP协议的socket方式。当然也是用python里的socket模块。

    【3】最后的发布,这个在windows下比较麻烦,暂时没搞定成exe可执行文件。不过,安装了python软件后,在.py文件中加入一句命令后,双击.py文件同样可以执行。

           就是这条命令:path.append(os.getcwd())  相当于把当前文件的目录暂时加入到系统环境变量中。

3. 界面设计

    【1】界面设计,使用PyQt4的Qt Designer工具,相当简单好用!设计界面的时候专注于界面,不用管内部程序实现。有很多界面设计功能,没有研究多深,就是用了几个PushButton,LineEdit,Label控件。命名,布局做好后保存成.ui文件就行了。比如文件名为:RunDlg.ui

    【2】设计完成界面后,还要用pyuic4或者pyrcc4工具将UI界面文件转化成python代码,在shell下(Dos--cmd)输入:

                 pyuic4 -o ui_RunDlg.py  RunDlg.ui 就可以自动生成界面的python代码了!so cool!

    【3】为了以后方便,不用每次都在shell命令行输入,可以自己用python语言写一个小程序实现:

 

 

OK了!每次双击执行这个文件就可以将本目录下的所有ui文件自动生成python代码了。

4. socket通信

    【1】用python里的socket模块,在机器人内部建立一个server,始终监控接收9549端口,将接收到的数据输出self.output(data)

    【2】在计算机端,建立client,比较简单,不用连接,不用绑定,不用监听。暂时不用计算机端接收数据。

           需要发送数据的时候,用一句: SOCK.sendto('bad', (HOST, PORT)) 就可以了!

5. 载入UI对象

    【1】用pyuic4自动生成的文件名为ui_RunDlg.py , 文件内部的类名为Ui_RunDlg

           用这两条语句,还需要建立一个桌布类class RunDlg(QtGui.QWidget):就可以使用生成UI窗口类Ui_RunDlg了。

           在RunDlg类的init函数中生成对象、生成UI窗口,语句为:

6. 信号与槽

    【1】Qt界面里的按钮怎么响应事件啊?答案就是:信号与槽

            PyQt中支持同名传递信号,就是说根据控件的名字来自动选择哪个槽,比如界面里的一个按钮,要响应clicked信号:

 

最后,附带主要源码:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值