01 背景说明
在一些实际项目中,程序配置界面会有很多的配置参数项(超过几百条),并且这些配置参数项需要通过接口来动态添加。本文就来重点讲下,Qt界面如何利用滚动条显示超多配置参数项,同时还要实现界面布局自动排版等功能。
本示例利用QGridLayhout网格布局管理器,来管理所有的配置参数项,实现界面布局自动排版;同时利用QScrollArea实现界面自定义滚动条的功能,当配置参数项的显示超出当前界面的可视高度,自动显示垂直滚动条。
-
先看最终配置界面效果:
截图一:
截图二:
下面开始编码实现。
02 增加配置参数项目界面
增加一个继承于QWidget的ui界面类CheckBoxSetItemsWidget。这个类主要有二个作用,一是QWidget做为封装,可以方便的集成到别的界面;二是单独类设计可以添加到QScrollArea实现滚动条功能。
首先需要先修改CheckBoxSetItemsWidget界面为垂直布局(QVBoxLayout),修改方式详见文末。
然后在上方放一个水平布局管理器(QHBoxLayout),在下方放一个网格布局管理器(QGridLayout)。
在界面上方的水平布局管理器里面,添加一个QCheckBox用于实现全选和反选,和一个水平弹簧(QSpacerItem)用于在水平方向自动撑开。
CheckBoxSetItemsWidget.ui界面设计如下图:
-
CheckBoxSetItemsWidget类设计:
#ifndef CHECKBOXSETITEMSWIDGET_H
#define CHECKBOXSETITEMSWIDGET_H
#include <QWidget>
#include <QString>
namespace Ui {
class CheckBoxSetItemsWidget;
}
class CheckBoxSetItemsWidget : public QWidget
{