首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wxStyledTextCtrl如何对关键字进行样式化

问wxStyledTextCtrl如何对关键字进行样式化
EN

Stack Overflow用户
提问于 2019-05-10 08:53:30
回答 1查看 354关注 0票数 1

很难让wxStyledTextCtrl给我的单词列表着色。

代码语言:javascript
复制
x->m_ctlEdit->SetKeyWords(0,"true false");
x->SetWordChars(wxT("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMONPQRSTUVWXYZ._") );
x->StyleSetForeground(wxSTC_HPHP_WORD, wxColour(0x67,0xa6,0xff));

“真”和“假”没有用这种方式着色,我在许多其他定义上都使用了StyleSetForeground,所有这些都很好,只是单词列表有问题。

作为第二个问题,我如何区分不同单词列表的颜色?我知道我可以用数字标识符设置不同的关键字列表,但是如何应用每个关键字列表的样式,因为函数不接受标识符?

注意:使用作为wxStyledTextCtrl默认选项的HTML

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-10 13:31:37

对于wxSTC_LEX_HTML html lexer或wxSTC_LEX_PHPSCRIPT php,需要指定关键字集4。

代码语言:javascript
复制
x->m_ctlEdit->SetKeyWords(4,"true false");

如果您使用的是html,您可以通过调用x->m_ctlEdit->DescribeKeyWordSets();来了解这一点,它将返回以下列表:

  • HTML元素和属性
  • JavaScript关键词
  • VBScript关键词
  • Python关键词
  • PHP关键词
  • SGML和DTD关键词

在本例中,PHP关键字的基于0的索引为4,因此这将是传递给SetKeyWords方法的数字。

但是,这种检查方法在使用PHP时失败,因为调用DescribeKeyWordSets只会返回“PHP关键字”。因此,您可能认为应该使用0调用SetKeyWords,但实际上仍然需要使用4,因为php脚本lexer与html相同。这似乎是一种奇怪的闪烁。

从一个不相关的角度来说,我认为对SetWordChars的调用是不必要的。根据文档,这是为了通过文字搜索,而不是关键字。

作为第二个问题,我如何区分不同单词列表的颜色?

那要看雷克萨斯了。例如,offers提供了以下关键字集

  • 主要关键词和标识符
  • 次关键字和标识符
  • 文档注释关键词
  • 全局类和类型
  • 预处理定义

它对应于wxSTC_C_WORD、wxSTC_C_WORD2、wxSTC_C_COMMENTDOCKEYWORD等词表。

不幸的是,如上所述,html只为PHP提供了一个关键字集。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56074008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档