今天是程序猿的节日,我从早到晚都在调试,虽然解决问题不涉及复杂的技术,但是整个调试过程值得说一说。
遇到的问题是这样的:
点击界面上的item后,弹出了界面,不过,界面上的checkbox消失了,不仅如此,doublespinbox的上下剪头也消失了;
一开始我怀疑是创建界面的函数出了问题:为了省事,我采用工厂模式创建界面,试了三次,排除了这个原因;
然后,担心是不是主界面在堆区创建,导致界面缺损,然后我把类似程序的主界面也放到堆区创建,界面玩好,排除;
担心不知道什么原因造成checkbox隐藏,就在界面弹出时显式调用show()函数,仍然没有checkbox的影子;
这样过了大半天,我突然想到,是不是样式表出了问题,观察了一下其他的界面,也没有checkbox控件,然后,就基本上锁定是样式表的问题了;
最后发现是类名改变后,样式表中某些字段没有随之改变,导致某些控件看不到了;
一开始,我会担心是自己的代码出了问题,然后担心所有的改动是否造成影响,比如把界面从栈区移到堆区等,直到最后,观察到所有界面都缺少checkbox后,才想到样式表可能出问题;
后续,在查找原因之前,要收集足够多的信息,否则很容易被头脑中的想法带偏。
另外,经验仍显不足,头脑中冒出来的想法大部分都是代码相关,而忘记了这可能是代码以外的问题引发。
先搜集足够的信息,然后再动手去做,这样会轻松得多。