PyQt5可视化 7 饼图和柱状图实操案例④

2023-11-30 21:50:59 浏览数 (1)

修改myMainWindow.py程序,添加功能

打开数据库

生成分数数据

import新模块

在构造函数中设置数据模型,调用生成分数函数

生成分数函数

运行看看

统计各分数段人数

构造函数中调用

统计各分数段人数的函数

运行看看

窗体的布局

窗体大小变化时界面的变化

拉大窗口看看

好难看,窗口拉大,显示区域没有跟着变大

设置栅格布局

设置栅格布局

在窗体空白处点击或者在右上角的对象选中窗体,选择栅格布局

设计界面效果如下,看上去不错

运行看看

初始大小

不错不错

放大到整个屏幕

好难看,上面的frameHead不需要那么高。界面放大,frameHead、frameData,tabWidget都拉大了

打破布局

让布局变回原样

固定frameHead高度

希望在窗口放大的时候,frameHead不放大,只是放大表格和图形显示区域

改frameHead的sizePolicy属性,当前这个属性是这样的

希望窗口扩大的时候,frameHead水平方向可以跟着放大,但垂直方向固定不动。修改策略

设置栅格布局

设置前窗体的层次结构

可以看到,窗体从大的角度来看由两个部分组成,一部分是frameHead,另一部分是splitter(由frameData和tabWidget组成)

从界面上来看,frameHead占据了窗口上方的大部分,但并没有占满整个上面一条空间

改为栅格布局

改完frameHead的属性后,再把窗体设为栅格布局。窗体变成了这样

由于设置了栅格布局,而且frameHead的扩展策略是水平方向Prefered,所以frameHead霸占了整个窗体上部空间(如果水平是fixed的,那么不会占满)

运行看看

刚运行界面

放大到整个屏幕

frameHead不会变太高了

splitter布局

当前的布局

从当前布局可以看出,frameData和groupBoxGrade通过一个splitter,组合到一起。

splitter是分裂器,可以左右分割和上下分割,可以在两个可以自由改变大小的组件之间进行分割

运行中改变布局

拖完之后

把屏幕放到最大

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞