一个小工具,在中标麒麟系统上运行,界面没有问题,但同样的代码,放到UOS下,但界面显示成一条线了:
问题查找过程如下:
- 在UOS上新建一个图形工程,点击运行后,能正常显示,这说明,基本环境肯定是没有问题的。
- 去掉工程中不相关的代码,只剩下一个空框架,问题依旧
- 将此UI文件复制到步骤1中,发现此空框架也不行了。说明有问题的是这个ui文件中的内容,但此时界面上没有任何控件,到这一步还是没有发现问题,仍然一头雾水。
- 观察界面,发现,界面是一条线,高度是正常的,不正常的是宽度,对比这一好一坏UI文件宽度设置项,发现sizeIncrement中的宽和高,正常显示的这个都是0,异常的这个却都不是0,将这两个参数都改为0,问题解决。
为啥会出现这个问题?
控件的尺寸设置中,有一个sizeIncrement和basesize,它的作用就是,当用户重新定义窗口尺寸的时候,窗口会以basesize为基准,按照sizeIncrement.width()和sizeIncrement.height()的属性来变化。我的主界面大小是671X593,但这个sizeIncrement中设置的值却是673X592,宽度上比主界面要多了2,将此值改为671,界面显示马上就正常。这个坑就是因为这里给设大了。