首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在XPCE中从编辑器中读取文本

在XPCE中从编辑器中读取文本
EN

Stack Overflow用户
提问于 2019-08-08 00:56:52
回答 1查看 97关注 0票数 2

我正在编写一个XPCE程序,其中用户可以在文本窗口中输入文本,然后由Prolog程序进一步处理(例如,通过运行拼写检查)。

因此,我需要一个文本窗口,在其中可以自由输入文本(包括段落,标点符号等)。然后将文本存储在Prolog变量中以供进一步处理。

使用text_item实现这一点很简单(而且效果很好),如下所示:

代码语言:javascript
复制
 send(D, append(new(Text,   text_item('Enter Text'))))

但是,这只允许输入一行,这不适合较长的文本。

“编辑器”环境看起来非常适合这项任务;我可以使用以下命令创建编辑器

代码语言:javascript
复制
send(D, append(new(Text1,editor),below))

在这里,用户可以输入多行的文本,包括段落等。但是现在,我如何访问用户输入的文本?它显然没有存储在变量Text1中。我读到过一个text_buffer,但我不知道如何将它链接到编辑器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-08 18:04:46

改编自XPCE guide

代码语言:javascript
复制
:- use_module(library(pce)).

multiline_input(Text) :-
        new(D, dialog('Prompting for name')),
        send(D, append, new(TI, editor)),
        send(D, append,
             button(ok, message(D, return,
                                TI?contents))),
        send(D, append,
             button(cancel, message(D, return, @nil))),
        send(D, default_button, ok), % Ok: default button
        get(D, confirm, Answer),     % This blocks!
        send(D, destroy),
        Answer \== @nil,             % canceled
        get(Answer, value, Text).

只是用编辑器替换了text_item,获取它的内容,然后从中获得价值。

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

https://stackoverflow.com/questions/57399142

复制
相关文章

相似问题

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