一个小小计算器

老妈每天对账条目多,排错时需要人工每条对照,而且手写账单有时字迹模糊,增加了不少工作难度。看见她每天查账、录入,都要工作到深夜,好像debug一样,实在是太辛苦了。有见及此,开发一个小软件,希望能帮上一点忙。


在win7下用Qt5.1开发。效果图


算是首次自己使用Qt做开发,水平确实不怎样,但是一步一脚印慢慢学习吧

主要涉及了qstring / qlistwidget / doublespinbox几个类。

一开始想着在自定义的类里面写个结构体,包含单价、数量、总价这些方面,再对这个结构体做个链表,这样就可以添加或者删除我的条目。但写了一半就发现,这些数据主要都是用于显示出来,不需要进行复杂运算和存储,其实可以直接从界面上set或者get来搞定。

不过对于Qt确实很陌生,api都很不熟悉,只能打开qassistance一个一个慢慢看,慢慢试,一开始真的超级慢(现在也快不了多少),写个qstring的arg或者todouble这些都看了挺久的。

在doublespinbox里面,为了让总价随着前两条的改变而自己变化,我用了它的valuechange信号,“单价”或者“数量”的内容变了,“总价”会跟随变化。

listwidget的使用上用了挺长时间,看网上的资料大多都创建一个qlistwidgetitem的对象,然后再根据这个对象去修改。然后我就想,如果我要添加这些对象,只能在“插入”按钮的槽函数里面去新建这些对象,但是槽函数结束就会导致这些对象消亡,如果用new的方法去新建,后面回收又会很麻烦。这里面比较纠结,也不知道有没有其他方法。后来查api的时候看到,currentRow可以返回鼠标选中的当前行号,item可以返回所在行对应的listWidgetItem地址,这样就不需要自己创建那个listwidgetitem的对象。

listwidget里面比较特殊的是删除条目的时候,不是用remove*之类的函数,而是用takeitem。

为了增加软件的人性化,每次输入完,要自己完成setfocus,setvalue,selectall这些动作,这些对于提高老妈的输入效率还是很有帮助的。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值