Qt-UI 产品文档
产品文档目录

UIGearsControl控件的使用

功能功能

UIGearsControl是所有控件的基类,其方法和事件是所有控件所公用的。

控件事件介绍

1. UIG_CTRL_RESIZE

参数名 事件数值 事件含义 事件参数1 事件参数2
UIG_CTRL_RESIZE 0x10 控件大小发生改变

事件处理示例:

 ON_UIG_RESIZE(CTestDlg)
    ON_UIG_BN_CLICKED(_btnOpen, ResizeEvent)
 END_UIG_MESSAGE_MAP()
 ...
 void CDemoDlg::ResizeEvent(IUIGearsControl* control)
{
    if (control == _btnOpen)
    {   
    }
}

2. UIG_CTRL_VISIBLE_CHANGE

参数名 事件数值 事件含义 事件参数1 事件参数2
UIG_CTRL_VISIBLE_CHANGE 0x11 控件显示状态发生改变

事件处理示例:

 BEGIN_UIG_MESSAGE_MAP(CTestDlg)
    ON_UIG_VISIBLECHANGE(_btnOpen, VisibleChange)
 END_UIG_MESSAGE_MAP()
 ...
 void CDemoDlg::VisibleChange(IUIGearsControl* control)
{
    if (control == _btnOpen)
    {   
    }
}

接口介绍

1. Invalidate

接口描述: 重新绘制控件 注意:此操作为异步操作

参数值:

返回值: 无

示例:

button.Invalidate()

2. Invalidate(x, y, w, h)

接口描述: 对窗口指定区域进行重绘,指定的位置为窗口上的绝对坐标位置, 左上角为0,0, 右下角为窗口的宽度,高度。

参数值:

参数名 参数类型 参数含义
x int 左侧位置
y int 上侧位置
w int 重绘宽度
w int 重绘高度

返回值: 无

示例:

button.Invalidate(10, 10, 100, 100);

3. Resize

接口描述: 重新计算控件及其内部子控件的位置和大小 注意:此操作为异步操作,不会立即执行

参数值:

返回值: 无

示例:

button.Resize(); 

4. ResizeSync

接口描述: 立即计算控件的及其子控件的位置和大小 注意:此操作为同步操作,立即执行大小计算

参数值:

返回值: 无

示例:

button.ResizeSync(); 

5. AppendEventReceiver

接口描述: 给控件设置事件接收器,可以给控件设置多个事件接收器

参数值:

参数名 参数类型 参数含义
pDelegateObj IEventRecevier* 事件接收器指针

返回值: 无

示例: 通过以下的步骤就可以将button对象的消息处理托管到MyHandleClass类的HandleEvent方法中

class MyHandleClass 
{
bool HandleEvent(void* pMsg)
{
NotifyInfo *pNotify = (NotifyInfo*)pMsg; 
}
}
...
CDelegateObj<MyHandleClass, MyHandleClass> m_delegate;
m_delegate.SetDelegate(this, &MyHandleClass::HandleEvent);
...
button.AppendEventReceiver(&m_delegateObj); 

NotifyInfo的定义如下

struct NotifyInfo
{
unsigned int                        nMsgId;  // 消息id
UIGears::IUIGearsControl        *pCtrl; // 触发消息的控件
void*                               ctrlPtr; // 内部使用
PARAM                               wParam;  // 事件参数1
PARAM                               lParam;  // 事件参数2
};

6. RemoveEventReceiver

接口描述: 将控件的某个事件处理器移除掉

参数值:

参数名 参数类型 参数含义
pDelegateObj IEventRecevier* 事件接收器指针

返回值: 无

示例:

...
CDelegateObj<MyHandleClass, MyHandleClass> m_delegate;
...
button.RemoveEventReceiver(&m_delegate);

7. RemoveAllEventReceiver

接口描述: 将控件的所有的事件处理器移除掉

参数值:

返回值: 无

示例:

button.RemoveAllEventReceiver(); 

8. SetVisibility

接口描述: 设置控件是否显示

参数值:

参数名 参数类型 参数含义
visibility bool 是否显示

返回值: 无

示例:

button.SetVisibility(false); // useIcon == true

9. GetVisibility

接口描述: 获取控件的显示状态

参数值:

返回值: bool

示例:

bool visible = button.GetVisibility();

10. SetEnable

接口描述: 设置控件是否启用,如果为false则禁用控件,用户将不可点击该控件,所有的控件高亮按下等状态也会禁用

参数值:

参数名 参数类型 参数含义
enable bool 是否启用

返回值: 无

示例:

button.SetEnable(false); 

11. GetEnable

接口描述: 获取控件的启用状态

参数值:

返回值: bool

示例:


bool enable = button.GetEnable();

12. SetRect

接口描述: 设置控件的坐标位置,该坐标为相对于窗口的坐标,左上角为0,0

参数值:

参数名 参数类型 参数含义
x int 左侧位置
y int 上侧位置
w int 重绘宽度
w int 重绘高度

返回值: 无

示例:

button.SetRect(10, 10, 100, 100);

13. GetControlByName

接口描述: 根据名称获取子控件

参数值:

返回值:

UIGears::IUIGearsControl*

示例:

UIGears::IUIGearsControl* childCtrl = button.GetControlByName(_T("btnCancel")); 

14. GetWindowX

接口描述: 获取控件在窗口上的X轴坐标位置

参数值:

返回值:

int

示例:

int x = button.GetWindowX(); 

15. GetWindowY

接口描述: 获取控件在窗口上的Y轴坐标位置

参数值:

返回值:

int

示例:

int x = button.GetWindowY(); 

16. GetX

接口描述: 获取控件在父控件上的X轴坐标位置

参数值:

返回值:

int

示例:

int x = button.GetX(); 

17. GetY

接口描述: 获取控件在父控件上的Y轴坐标位置

参数值:

返回值:

int

示例:

int x = button.GetY(); 

18. GetWidth

接口描述: 获取控件的宽度

参数值:

返回值:

int

示例:

int w = button.GetWidth(); 

19. GetHeight

接口描述: 获取控件的高区

参数值:

返回值:

int

示例:

int x = button.GetY(); 

20. SetX

接口描述: 设置控件距离父控件左侧的距离

参数值:

参数名 参数类型 参数含义
x int 距离左侧的距离

返回值: 无

示例:

button.SetX(0);

21. SetY

接口描述: 设置控件距离父控件上方的距离

参数值:

参数名 参数类型 参数含义
y int 距离上方的距离

返回值: 无

示例:

button.SetY(0);

22. SetWidth

接口描述: 设置控件的宽度

参数值:

参数名 参数类型 参数含义
w int 控件宽度

返回值: 无

示例:

button.SetWidth(100);

23. SetHeight

接口描述: 设置控件的高度

参数值:

参数名 参数类型 参数含义
w int 控件高度

返回值: 无

示例:

button.SetHeight(100);

24. GetWindowPos

接口描述: 获取控件在窗口上的位置

参数值:

参数名 参数类型 参数含义
x int& 控件x坐标位置
x int& 控件y坐标位置

返回值: 无

示例:

int x = 0;
int y = 0;
button.GetWindowPos(x, y);

25. GetLayout

接口描述: 获取控件的布局对象 注意:如果该控件使用的是绝对布局,那么获取到的布局对象为空

参数值:

返回值:

UIGears::IUIGearsLayout*

布局对象的继承关系是

// 布局基类
class IUIGearsLayout;
// 停靠布局
class IUIGearsDockLayout : public IUIGearsLayout
// 百分比布局
class IUIGearsPercentageLayout : public IUIGearsLayout
// 填充父控件布局
class IUIGearsFillLayout : public IUIGearsLayout

示例:

UIGears::IUIGearsLayout* playout = button.GetLayout();

26. SetLayout

接口描述: 给控件设置布局对象

参数值:

参数名 参数类型 参数含义
type UIGears::UIGLayoutType 控件x坐标位置

UIGears::UIGLayoutType 值分别为:

    enum UIGLayoutType
    {
        UIG_LAYOUT_DOCK = 0,
        UIG_LAYOUT_FILL,
        UIG_LAYOUT_PERCENTAGE,
        UIG_LAYOUT_ABOSOLUTE
    };

返回值:

UIGears::IUIGearsLayout*

布局对象的继承关系是

// 布局基类
class IUIGearsLayout;
// 停靠布局
class IUIGearsDockLayout : public IUIGearsLayout
// 百分比布局
class IUIGearsPercentageLayout : public IUIGearsLayout
// 填充父控件布局
class IUIGearsFillLayout : public IUIGearsLayout

示例:

UIGears::IUIGearsLayout* playout = button.GetLayout();

27. GetChildrenCount

接口描述: 获取该控件的子控件数量

参数值:

返回值: int

示例:

int childCount = button.GetChildrenCount();

28. GetControlByIndex

接口描述: 通过索引号获取子控件

参数值:

参数名 参数类型 参数含义
index int 子控件的索引号,不能超过子控件的数量

返回值:

UIGears::IUIGearsControl*

示例:

int childCount = background.GetChildrenCount();
for(int i = 0; i < childCount; ++i)
{
  UIGears::IUIGearsControl* childCtrl = background.GetControlByIndex(i);
}

29. RemoveChild

接口描述: 删除子控件

参数值:

参数名 参数类型 参数含义
pEle UIGears::IUIGearsControl* 子控件的指针

返回值:

bool // true 为成功, false为失败

示例:

int childCount = background.GetChildrenCount();
if(childCount > 0)
{
  UIGears::IUIGearsControl* childCtrl = background.GetControlByIndex(0);
  bool result = background.RemoveChild(childCtrl);
}

30. GetControlName

接口描述: 获取控件的名称

参数值:

返回值:

const tchar*

示例:

const tchar* pName = button.GetControlName();

31. GetControlTypeName

接口描述: 获取控件的类型名称

参数值:

返回值:

const tchar*

示例:

const tchar* pTypeName = button.GetControlTypeName();

32. SetControlName

接口描述: 修改控件的名称

参数值:

参数名 参数类型 参数含义
name const tchar* 控件新的名称

返回值: 无

示例:

button.SetControlName(_T("newName"));

33. SetUserData

接口描述: 设置一个用户自定义数据

参数值:

参数名 参数类型 参数含义
data PARAM 用户数据

PARAM 类型定义为 64位程序为8字节,32位程序为4字节

#ifdef _WIN64
typedef __int64         PARAM;
#else
typedef int             PARAM;
#endif

返回值: 无

示例:

void* pInfo = NULL;
...
button.SetUserData((PARAM)pInfo);

34 GetUserData

接口描述: 获取用户自定义数据

参数值:

返回值: PARAM PARAM 类型定义为 64位程序为8字节,32位程序为4字节

#ifdef _WIN64
typedef __int64         PARAM;
#else
typedef int             PARAM;
#endif

示例:

void* pInfo = NULL;
...
pInfo = (void*)button.GetUserData();

35. GetParentControl

接口描述: 获取父控件的指针

参数值:

返回值:

UIGears::IUIGearsControl*

示例:

UIGears::IUIGearsControl* parent = button.GetParentControl();

36. SetTooltip

接口描述: 设置控件的Tooltip文本

参数值:

参数名 参数类型 参数含义
tooltip const tchar* tooltip文本

返回值: 无

示例:

button.SetTooltip(_T("click here"));

37. GetTooltip

接口描述: 获取控件的Tooltip文本

参数值:

返回值:

const tchar*

示例:

std::wstring tooltip = button.GetTooltip();

38. Copy

接口描述: 将当前控件和子控件拷贝到指定控件下

参数值:

参数名 参数类型 参数含义
name const tchar* 新控件名称
pParent UIGears::IUIGearsControl* 父控件指针
insertPos int 在父控件的位置,默认值-1,即插入到父控件的末尾控件

返回值: 返回新拷贝出来的控件

UIGears::IUIGearsControl*

示例: 将m_conItemTemp拷贝一个到m_mainContainer下,并获取新控件里面的子控件label,然后设置文本内容

std::wstring w = _T("new label");
UIGears::IUIGearsControl* copyCtrl = m_conItemTemp->Copy(_T("newItem"), m_mainContainer);
UIGears::IUIGLabel* label = (UIGears::IUIGLabel*)copyCtrl->GetControlByName(_T("label"));
label->SetText(w.c_str());        

Qt商用模板项目

支持C++/Python语言,支持Windows\Linux\MacOS系统,支持X86\ARM\MIPS架构

img02

Qt Stock Exchange Sys

View more

Qt股票交易系统

Qt Stock Exchange System

img02

Qt Robot

View more

QtRobot 视频高清机器人控制系统

Qt Robot System

img02

Qt LED Editor

View more

Qt LED 灯效编辑器

Qt LED Editor

img02

Qt IOT Bike

View more

Qt IOT 物联网自行车

Qt IOT Bike

img02

Qt ECG Monitor

View more

Qt嵌入式床旁心电监护仪

Qt ECG Monitor

img02

Qt AutoDashboard

View more

Qt汽车仪表盘系统

Qt Auto Dashboard

img02

Qt DataMonitor

View more

Qt数据监控系统

Qt Data Monitor

img02

Qt Conference

View more

Qt会议终端系统

Qt Conference System

img02

Qt Video Player

View more

Qt视频播放器

Qt Video Player

img02

Qt NetDisk

View more

Qt网盘系统

Qt SkyDrive

img02

Qt IM

View more

Qt即时通讯系统

Qt IM

img02

Qt Cashier

View more

Qt便利店收银系统

Qt CashierSystem