可能我做的是最简单易用的一个了。基本不需要了解太多QT的知识和软件,就可以写出QT的应用软件。我使用了开源和跨平台的开发软件Lazarus(它非常像Delphi),利用了它跨平台和支持多种widget的特点,所以很容易写出QT的程序,和编写一个普通的应用程序没有太多区别。
首先当然需要安装Lazarus了,如果你没有安装Lazarus,那么就需要先安装它。下面以Debian为例,其他操作系统也基本类似,个别不同之处,搜索一下也能很快解决。为了省事,我直接在新立得中安装。
为了在Lazarus中使用QT,还需要安装QT的支持库。在Debian中,是安装 libqt4pas5。
虽然在FreePascal中,也可以通过直接调用QT API的方式去编程,但是那样对于一般应用的编程来说还是太麻烦了。在Lazarus中有更加简单,更加快速的方法,就是在程序编译的时候,选择LCLWidgetType的类型,通过改变它就可以产生不同界面类型效果的程序了,基本不用修改主程序,既简单又方便,这也是Lazarus软件的一大优点。
同样,还可以选择不同的MCU类型和操作系统平台。Lazarus是可以产生arm程序的,它可以在树莓派上跑。
虽然在Lazarus中已经最大程度的将不同Widget的效果统一,但是还是存在个别控件有显示上的兼容性问题,使得运行效果不一致。这时就需要我们自己处理一下。在存在差异需要我们处理的代码部分,使用{$IFDEF LCLQT}这样的方式,就可以轻松搞定。如:
- {$IFDEF LCLQT}
- pnlRxdOuter.Color := clDefault;
- pnlSendOuter.Color := clDefault;
- {$ENDIF}
{$IFDEF}是FreePascal中的预处理指令,和C语言中的预处理指令差不多,功能也是一样的。
上面简单介绍了在Lazarus中使用QT的方法和步骤,下面在来一个具体的例子。这是我写的一个串口调试小软件atcom,它可以满足我们平时工作中串口调试的需要。atcom除了可以实现常用的ASC/HEX数据收发,还有ASC/HEX同步显示、历史命令、多数据包周期发送、自动应答等实用功能,对于产品测试很方便。
这是软件开发中的主界面。
运行效果图
编写这个程序的原因,一是因为现有的串口程序不能完全满足工作上的需求;再就是在Linux下没有特别好用的串口调试软件,minicom、cutecom虽然可以用,但比起windows下的软件要难用不少。使用Lazarus,就很容易编写出一个同时可以在Windows和Linux下使用的串口调试软件(只需要重新编译一下),还可以支持GTK和QT等多种Widget,真正可以将复杂的事情简化,比较适合偷懒的程序员。
虽然目前程序功能还比较简单,缺少更多的功能,但它已经能够方便的实现串口调试中需要的基本功能。我将atcom软件的代码和编译后的执行文件都放在了Sourceforge上了,包括win32/win64/linux32/linux64/gtk/qt等多种版本,欢迎大家试用一下,如果大家需要更多的功能,也欢迎提出来。
https://sourceforge.net/projects/atcom
如果sourceforge访问不了,可以试试sourceforge镜像服务器:
http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/a/at/atcom/
本帖最后由 dcexpert 于 2014-11-11 12:02 编辑