极简版算账软件

一.设计目的

   做这个软件是为了进行一个简单的记账,主要是看买的东西毛利是多少。这个简单的功能其实是用excel也是很方便实现的,但是,做好一个excel模板之后,还要求别人的电脑上面也有excel才能使用,使用的前期投入太大了。同时,这样的一个软件需要的计算逻辑也很简单,适合用于练练手。

二.遇到的问题和解决方法

   这个软件的计算逻辑很简单,主要就是数量和单价的相乘,以及更新总的金额,基本上不需要什么算法,计算逻辑简单。主要的难点都集中在如何设计成表格格式,输入格式的控制和如何获得输入已经结束的问题上。
1.如何将程序设计成类似于excel表格的形式于这个问题,可以使用Qt中的QTableWidget控件来实现,而且对于该控件中的行数和列数都是可以变化的,可以方便动态添加和减少行数或者列数。对于QTableWidget控件而言,最原始的项目只能用于简单的输入,不能限制输入的类型和精度,因此,单独使用原始的控件中的项目是无法解决第二个问题。QTabelWidget控件可以通过setCellWidget将其他控件放入到cell中,从而使得cell的内容可以多样化,因此,可以将能够控制输入格式的控件添加到车cell中,来控制输入格式。
2.如何控制输入的格式通的输入可以通过QLineEdit控件来实现,而对于特定格式的输入,可以通过设置QLineEdit的validator来获得,Qt中有三种类型的validator,QIntValidator 和 QDoubleValidator提供输入范围的检查, QRegExpValidator 提供普通的正则表达式的检查。对于这个程序,只要求输入数量和价格,因此,只要使用到前面的两个检查器就可以了。
3.如何获得输入已经结束的信号。由于只有更新了价格和数量后,才有可能导致最后的结果的变化,因此,必须知道数量和价格的修改什么时候结束。由于价格和数量对应的那些cell都是使用QLineEdit控件的,因此,可以考虑在QLineEdit控件中寻找修改已经完成的信号。QLineEdit中的editingFinished信号是当用户输入enter或者控件失去焦点时触发,也就是用户输入完成后才进行触发的,因此,可以将这个用于确定输入已经结束。
   在解决了上面的三个问题后,又出现了一个问题,由于我采用的更新策略时,每次修改了数量和价格之后,更新这一行对应的总数和整个表对应的总数,因此,需要知道每次修改了哪一行。要解决这个问题,可以通过在QLineEdit中加入一个代表所在行的变量,然后将editingFinished信号绑定到一个发送带有行数信息的槽中,就可以在每次更新了某一行的数量或者价格之后受到输入完成的信号,从而更新对应的总数和整个表对应的总数。

三.总结

    这个程序的设计思想是很简单的,主要的难点就在于对于Qt的控件的使用上面,还是程序写得太少了,还是不熟练,还是需要多写,多想,才可以提高效率。

四.源代码

代码托管到 ,欢迎大家批评指正


五.参考资料

http://blog.csdn.net/jingzhesiye/article/details/7870543

版权所有,欢迎转载,转载请注明出处,谢谢

极简版算账软件



来源:shengno1

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年1月16日
下一篇 2015年1月16日

相关推荐