链接控件 (SLink)¶
链接控件提供了类似HTML链接的功能,可以在点击时触发特定操作或跳转到指定URL。
基本信息¶
- 类名:
SLink
- 控件标签:
link
- 基类:
SWindow
- 功能:提供链接功能
属性说明¶
基本属性¶
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
text | string | - | text value |
href | string | - | 链接跳转url |
外观属性¶
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
skin | string | - | 皮肤 |
colorText | color | - | 文本颜色 |
colorTextHover | color | - | Hover颜色 |
font | string | - | 文本字体 |
fontHover | string | - | Hover字体 |
交互属性¶
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
cursor | string | - | 光标,可选值:arrow,ibeam,wait,cross,uparrow,size,sizenwse,sizenesw,sizewe,sizens,sizeall,no,hand,help |
使用示例¶
基本链接¶
<link pos="10,10,200,30"
name="link_basic"
href="https://github.com/SOUI2/soui"
colorText="#0000FF"
colorTextHover="#000088"
cursor="hand">
访问SOUI GitHub
</link>
带下划线的链接¶
<link pos="10,40,200,60"
name="link_underline"
href="https://soui.github.io"
colorText="#0000FF"
colorTextHover="#FF0000"
font="underline:1"
fontHover="underline:1,bold:1"
cursor="hand">
访问SOUI文档
</link>
自定义样式的链接¶
<link pos="10,70,200,90"
name="link_styled"
href="https://github.com"
colorText="#333333"
colorTextHover="#007ACC"
font="italic:1"
fontHover="underline:1,italic:1"
cursor="hand">
GitHub链接
</link>
事件处理¶
链接控件主要响应以下事件:
事件名 | EventID | 说明 |
---|---|---|
EVT_CMD | EventCmd::EventID | 命令事件(点击时触发) |
EVT_MOUSE_HOVER | EventMouse::EventID | 鼠标悬停事件 |
EVT_MOUSE_LEAVE | EventMouse::EventID | 鼠标离开事件 |
// 事件处理示例
EVENT_MAP_BEGIN()
EVENT_NAME_COMMAND(L"link_basic", OnLinkClick)
EVENT_MAP_END()
bool CMainDlg::OnLinkClick()
{
SLink *pLink = FindChildByName2<SLink>(L"link_basic");
SStringT strHref = pLink->GetHref();
// 处理链接点击,例如打开浏览器
ShellExecute(NULL, L"open", strHref, NULL, NULL, SW_SHOWNORMAL);
return true;
}
代码操作¶
// 查找链接控件
SLink *pLink = FindChildByName2<SLink>(L"link_basic");
// 设置链接地址
pLink->SetHref(L"https://new-url.com");
// 获取链接地址
SStringT strHref = pLink->GetHref();
// 设置链接文本
pLink->SetWindowText(L"新链接文本");
// 获取链接文本
SStringT strText = pLink->GetWindowText();
// 设置文本颜色
pLink->SetAttribute(L"colorText", L"#FF0000");
pLink->SetAttribute(L"colorTextHover", L"#00FF00");
最佳实践¶
- 视觉一致性:使用标准的链接颜色(如蓝色)和悬停效果
- 光标提示:设置 cursor 为 "hand" 以提供明确的交互提示
- 下划线效果:通过 font 属性添加下划线增强链接识别度
- URL验证:在处理链接点击时验证URL的有效性
常见问题¶
Q: 链接点击无反应怎么办?¶
A: 确保正确处理了 EVT_CMD 事件,并在事件处理函数中实现跳转逻辑。
Q: 鼠标悬停效果不明显怎么办?¶
A: 检查是否设置了 colorTextHover 和 fontHover 属性。
Q: 链接文本显示不完整怎么办?¶
A: 确保控件宽度足够显示文本,或调整字体大小。
相关控件¶
- 按钮(SButton) - 基础交互控件
- 文本标签(SStatic) - 文本显示控件