QT篇之QT布局与设计师

最近在做矿山的项目,在搞界面这块,用到了QT,所以现在把做的东西总结一下。
首先是设计界面这块,先看一下主界面:

QT篇之QT布局与设计师_第1张图片

我们开始分析一下这个界面该如何设计
问题:
  1. 该用什么布局来设计这个界面?
  2. COM、数据库显示以及子UI部分该添加什么组件?
  3. 怎么调整各部分的大小以及该如何让部件自动适应窗口大小变化?
OK,因为我自己比较懒,所以大部分部件都是用UI设计师完成的。
先解决第一个问题:
很明显,这样的一个布局属于垂直布局,无非在垂直布局再添加水平布局就形成了这个界面模型

QT篇之QT布局与设计师_第2张图片

重点是horizontalLayout_3,在这个水平布局中,又添加了两个垂直布局

QT篇之QT布局与设计师_第3张图片

其中的QLabel和QButton以及弹簧不必多说,直接拖动到布局里就可以了。
再解决第二个问题:
COM部分我用的是MxDraw52,因为要显示CAD工程文件,所以可以借助这个控件的力量,直接在界面拖入QAxWidget即可。然后数据库部分我用的是一个只读模型——QTableView,因为与数据库交互不多,所以这个模型还是比较合适的,如下图

QT篇之QT布局与设计师_第4张图片

子UI这块,我添加了一个QScrollArea,当然也可以用布局,之后调用的时候再setWidget就好。

QT篇之QT布局与设计师_第5张图片

最后一个问题就是自适应大小:
其实这个很简单,布局+弹簧就可搞定。顶层部件一定要有一个布局才可以,不然是无法自动适应窗口大小的,比如我的就用的是一个垂直布局

QT篇之QT布局与设计师_第6张图片

然后加弹簧可以自动调整部件间距
补充:
  1. 有时候我们直接在界面拖入一个布局,但是这个布局非常非常小,在设计师界面上只显示一条竖线或横线,例如下面这样

QT篇之QT布局与设计师_第7张图片

我直接拖入了一个水平布局,但是它非常小,影响我往里面拖入其他部件,这时候可以调整一下布局的边距

QT篇之QT布局与设计师_第8张图片

比如我把layoutBottomMargin调成了20,这样的个布局底边距就变大了,这时候直接把部件拖入这个水平布局会非常方便
  1. 设计一个各部件比例合适的布局,一定要弄清楚个部件的大小策略是怎么设置的

QT篇之QT布局与设计师_第9张图片

QT篇之QT布局与设计师_第10张图片

每个值具体什么意思这里不展开叙述,比如Fixed也即字面意思:固定大小,选中该策略,把minimumSize和maximumSize调整成一样大小,这样部件大小就封死了,无论你窗口怎么变它还是他,岿然不动。大小策略的设置请参考官方文档说明,这部分还是比较简单的。

你可能感兴趣的:(QT,qt,ui,界面设计)