首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在linux上运行的fltk程序中启用fcitx输入法?

如何在linux上运行的fltk程序中启用fcitx输入法?
EN

Stack Overflow用户
提问于 2018-11-24 10:24:19
回答 1查看 283关注 0票数 0

我试图在linux上运行的fltk程序中输入一些汉字,但失败了。我正在使用fcitx,特别是fcitx-googlepinyin作为中文输入法。

下面的代码将生成一个包含单个输入框的窗口。

代码语言:javascript
复制
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Input.H>

int main(int argc, char **argv) {
    Fl::scheme("GTK+");

    Fl::background(35, 35, 35);
    Fl::background2(90, 90, 90);
    Fl::foreground(240, 240, 240);

    Fl_Window *window = new Fl_Window(640, 480);

    Fl_Input *input = new Fl_Input(20, 20, 200, 20);

    window->end();
    window->show(argc, argv);

    return Fl::run();
}

当我点击输入框时,我无法通过在fltk程序中按ctrl + space来切换到我的中文输入法。但是在其他GUI程序如Firefox或Atom中,中文输入法工作得很好。

我将一些变量设置为:

代码语言:javascript
复制
export XIM="fcitx"
export XIM_PROGRAM="fcitx"
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"

如何在fltk程序中启用fcitx输入法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-24 17:44:58

在研究了X输入方法之后,我发现这是fltk >= 1.3.4中的一个错误(fltk-1.3.3有正确的实现)。

src/Fl_x.cxx的第673行中,正确的代码应该是XSetLocaleModifiers("");而不是XSetLocaleModifiers("@im=");。第1329行也有同样的问题。

只要更正这两行代码并重新编译库,输入方法将再次正确工作。

我还在fltk的网站上发布了一个错误报告,查看它以获得更多细节。

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

https://stackoverflow.com/questions/53457195

复制
相关文章

相似问题

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