关于使用QsciScintilla的中文补全问题

ShineFinger_Hacking 2017-11-20 01:18:22
使用QsciScintilla组件解决自动补全方案是使用:QsciScintilla类 + QsciLexer类 + QsciAPIs类,补全关键字设为非中文时非常棒,运行地很好,但是如果设为中文关键字的话就完全没有反应,代码如下:

QsciScintilla *m_strgyExpEdit;
QsciLexerCPP *textLexer = new QsciLexerCPP;
m_strgyExpEdit->setLexer(textLexer);
//设为UTF8编码
m_strgyExpEdit->SendScintilla(QsciScintilla::SCI_SETCODEPAGE,QsciScintilla::SC_CP_UTF8,lparam);
m_strgyExpEdit->SendScintilla(QsciScintilla::SCI_SETLEXER, SCLEX_CPP);

QsciAPIs *apis = new QsciAPIs(textLexer);
apis->add(QString("basic"));
apis->add(QString::fromLocal8Bit("非凡哥").toUtf8());
apis->prepare();
m_strgyExpEdit->setAutoCompletionSource(QsciScintilla::AcsAll); //补全之前的文本
m_strgyExpEdit->setAutoCompletionThreshold(1); //输入一个字符就会出现自动补全的提示

一开始我怀疑是中文编码问题,于是我使用qtcreator调试器查看,并且折腾了快一星期,然而作了一些实验貌似不是编码问题,于是实在没招,因为项目还比较急的,只能求助了
...全文
1974 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
马孔多的黑夜 2019-04-16
  • 打赏
  • 举报
回复
赵四老师还在论坛里发挥助人为乐的精神呢
gaara_zp 2018-11-08
  • 打赏
  • 举报
回复 1
请问你是怎么实现中文显示的啊?我现在中文显示是乱码
赵4老师 2017-11-21
  • 打赏
  • 举报
回复
百度搜相关关键字。
  • 打赏
  • 举报
回复
求人指点指点啊,真的没招了
  • 打赏
  • 举报
回复
上班时间没人吗
  • 打赏
  • 举报
回复
QsciScintilla *m_strgyExpEdit; 上面改为 QsciScintilla *m_strgyExpEdit = new QsciScintilla; 复制错了

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧