UIGQControlBase
所有的QtUI控件从基础qt控件派生或者从QWidget派生
实现了IUIGQControlBase接口
IUIGQControlBase接口主要包括:
1、获取内部的UIGQControlBase对象接口
UIGQControlBase* getControlBase()
获取控件内部的UIGQControlBase对象
2、设置控件布局
void setFillLayout(const UIGQtLib::FillLayoutData& layoutData)
修改控件的布局为填充布局
const UIGQtLib::FillLayoutData& layoutData // 布局数据对象
3、设置控件为百分比布局
void setPercentLayout(const UIGQtLib::PercentLayoutData& layoutData)
设置控件的百分比布局样式
const UIGQtLib::PercentLayoutData& layoutData 百分比布局数据对象
4、设置控件为静态Rect布局
void setRectLayout(const UIGQtLib::RectLayoutData& layoutData)
设置控件的绝对布局
绝对布局包括 x y width 和 height 同 setGeometry方法
const UIGQtLib::RectLayoutData& layoutData // 绝对布局数据对象
5、设置控件为停靠布局
void setDockLayout(const UIGQtLib::DockLayoutData& layoutData)
设置控件按停靠方式进行布局
const UIGQtLib::DockLayoutData& layoutData // 停靠布局数据对象
6、获取控件的布局对象
void getLayoutData(void*& layoutData) const;
这个得到一个指针
返回布局对象指针进行返回,内部实现如下
witch (_layoutType)
{
case UIGQtLib::UIG_LAYOUT_DOCK:
layoutData = (void*)&_layoutData._dockLayout;
break;
case UIGQtLib::UIG_LAYOUT_FILL:
layoutData = (void*)&_layoutData._fillLayout;
break;
case UIGQtLib::UIG_LAYOUT_PERCENTAGE:
layoutData = (void*)&_layoutData._percentLayout;
break;
case UIGQtLib::UIG_LAYOUT_RECT:
layoutData = (void*)&_layoutData._rectLayout;
break;
default:
break;
}
需要先获取布局类型,然后进行转换,或者动态转换
7、获取控件的布局类型
LayoutType getLayoutType() const
获取控件的布局类型
LayoutType定义如下:
enum LayoutType
{
UIG_LAYOUT_UNSET = -1,
UIG_LAYOUT_DOCK = 0, // 停靠布局
UIG_LAYOUT_FILL, // 填充布局
UIG_LAYOUT_PERCENTAGE, // 百分比布局
UIG_LAYOUT_RECT // 静态布局
};
8、根据布局参数重新调整布局
void resizeWidget()
有时候设置好布局后不会立即生效,这个时候调用这个方法可以将布局立即起效
9、通知语言发生改变
void notifyChangeLanguage()
当语言发生改变后会依次调用所有控件的通知方法