在使用qt designer设计qt界面的时候,实在是踩坑太多,CSDN和博客园之类的东西快翻烂了,但还是很多问题根本没法解决,只能是凑活或者等到后面解决。写这个系列的几篇博客,来记录遇到的问题和解决方法,以免我以后忘记。
注意:在用QT designer的过程中,了解各个部件的属性是最重要,很多功能都需要设置属性才能实现。
问题一:QT自定义标题栏问题
QT自带的标题栏虽然功能强大,但是外观比较普通,自定义标题栏很重要,具体如何自定义标题栏,有很多博客讲解。但是在其中有一个问题:最小化和最大化等按钮在布局的时候无法放到最右侧,出现在标题栏中间或者其他位置,如下所示:
解决方法:
给最小化和最大化等按钮添加布局和弹簧
在解决方法里,弹簧是非常重要的。设置弹簧的大小以及位置,这都需要在属性中设置,并且是先添加弹簧再对标题栏设置布局。
size’ Type属性的值为QSizePolicy中定义的枚举类型Q之一,包括Fixed、 Minimum、 Maximum、 Preferred、 Expanding和MinimumExpanding。这些枚举类型代表了不同的大小约束关系,详细说明如下:
●Fixed: 固定大小。
●Minimum:最小大小。
●Maximum: 最大大小。
●Preferred: 首选大小。
●Expanding: 可扩展大小。
MinimumExpanding:最小可扩展大小。
如下图所示:
问题二:布局后控件大小失控问题
在各个部件设置各自的格式和布局以后,整体设置大布局,出现控件大小失控。
解决方法:
给部件设置sizepolicy、minimumsize和maximumsize
布局问题解释博客链接: 四大布局
sizeoplicy等属性博客链接: 属性
布局后部件失控的原因是,像栅格布局等布局,会自动调节位置,但是如果部件设置了最大大小和水平策略有问题,比如说,你希望一个部件可以随着界面变大而变大,你设置了最大大小,所以部件最大只能变到你设置的数据,所以失控,再比如,你想做一个菜单之类竖向的部件,你在水平方向上设置了固定大小,水平方向不会再扩大,符合设计,但是如果在垂直方向上设置了固定大小,就会在菜单下面出现一片空白,由于在布局中,无法拉取改变部件大小,所以就失控了。