软件启动后界面超出边界

  • 问题描述
  • 问题分析与解决
  • 控件设定了最小值
  • 主窗体尺寸太大
  • 窗体拖不动
  • 布局后拖动窗体突然自动变大


问题描述

在qt学习和使用时,有时在界面设计完成后,编译运行的启动界面太大,直接超出电脑桌面,点击最大化后没任何问题。检查布局也没问题,但怎么修改都解决不了问题。一般是启动后,界面上下超限居多。百度上也没什么相关话题说明这个问题。

问题分析与解决

因该问题笔者遇到过多次,这里把最常见的几种情况列出来做分析。

控件设定了最小值

1 如果控件尺寸设置了最小值,软件为了满足这个,即使有了布局,在启动后也会拉大,导致界面太大而超出桌面。这种情况下,检查控件,有设置尺寸最小值的,根据需要修改即可。

主窗体尺寸太大

2 在做界面设计时,经常会拖动控件尺寸,包括主窗体,有时候会误操作把主窗体拖动的太大,这样会导致软件运行后窗体太大,进而超出桌面,此时点击最大化,窗体会自适应屏幕尺寸。这种情况下,把主窗体的尺寸修改到所需,即可解决问题。

窗体拖不动

3 这个问题通常是内部控件约束导致的。比如QStackedWidget控件,内部经常有很多页面,控件也非常多,在解除了布局约束关系后,自身的尺寸还是无法调节,此时需要根据第一条所述做内部控件检查。但拖不动的问题,优先看内部的控件尺寸是否可以调节,如果默认灰色,应该先解除控件本身的布局约束。

布局后拖动窗体突然自动变大

4 有时我们布局后,一拖动窗体,它就突然自动变宽或变高。这种情况大多是窗体内部控件很多,比如做查询功能时,通常一行要列出包括时间在内的很多控件,而这些控件为了把内容显示齐全,默认了一个最小尺寸,当许多最小尺寸排在一起时,就会使得布局后的最小值变大,最终导致整个窗体布局后,拖动就陡然变大。