You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# pragma once
# include "Defines.h"
# include "ZxUiBase.h"
# include "iPlugin_global.h"
class ZxSplitter ;
// 支持类似Grid的拆分器窗体
// 作者:地大学生 wangjr
// 修改者: wangzg
class I_PLUGIN_EXPORT ZxSplitterWx : public QWidget
{
Q_OBJECT
public :
ZxSplitterWx ( QWidget * parent = 0 ) ;
ZxSplitterWx ( int rows , int cols , QWidget * parent = 0 ) ;
/// @brief 设定滚动条显示策略
/// @param policyH 水平方向策略
/// @param policyV 竖直方向策略
/// @note 本类默认是Qt::ScrollBarAsNeeded, 如果需要更改, 则在setRCs之前调用本函数进行修改
void setScrollBarsAutoOn ( Qt : : ScrollBarPolicy policyH = Qt : : ScrollBarAsNeeded , \
Qt : : ScrollBarPolicy policyV = Qt : : ScrollBarAsNeeded ) ;
/// @brief 行列设定
/// @param rows 行数(竖直方向)
/// @param cols 列数(水平方向)
void setRCs ( int rows , int cols ) ;
/// @brief 设置单元格中的 widget
/// @param rows 行数(竖直方向)
/// @param cols 列数(水平方向)
/// @param pWx 窗体,无需考虑析构
/// @note 请在setRCs之后调用本函数进行修改
void setCellWidget ( int row , int col , QWidget * pWx ) ;
/// @brief 设定大小比例因子(整数)
/// @param vecHs 水平方向
/// @param vecVs 竖直方向
/// @note ( 1) 请在Widget全部设置( setCellWidget) 完毕后调用本函数
/// ( 2) 如果某方向不需设置, 则传入VecInt为空即可
void setSpStrenchSizes ( QList < int > & vecHs , QList < int > & vecVs ) ;
/// @brief 父类接口, 初始化UI
virtual void initUI ( ) ;
private :
// 参数初始化
void init ( ) ;
// 初始化布局各个拆分器
void layoutSplitters ( ) ;
public :
// 清理 QSplitter 的子部件
static void clearSplitter ( QSplitter * pSplitter ) ;
private slots :
// 分割条移动
void slotOnSplitterMoved ( int pos , int index ) ;
private :
// 布局相关
int m_nRows ;
int m_nCols ;
// 滚动条策略
Qt : : ScrollBarPolicy m_scrollPolicyH ;
Qt : : ScrollBarPolicy m_scrollPolicyV ;
// 最外层垂直分割器(竖直模式)
ZxSplitter * m_pSplitterMain ;
int m_nSpacing ; //不涉及序列化
bool m_bUnableSP ;
} ;