Как подключить кнопку к функции в xpce/prolog

Это кнопка:

new(B,button(solve, message(@prolog, solve))),
    send(D,display,B),
    send(D, open),

Это функция:

solve(D, Row, Column) :-
    assert(path([[0, 0], [-1, 0]])),
    track(Row, Column),
    path(P),
    show_track(D,P).

Как мне поступить?


person Boss Kittiprasert    schedule 21.12.2012    source источник
comment
Какую библиотеку/инструментарий GUI вы используете (я не знал, что существует стандартизированная библиотека GUI Prolog)?   -  person FrustratedWithFormsDesigner    schedule 21.12.2012
comment
Я мало что знаю о xpce/prolog, но нашел руководство пользователя в Интернете: swi-prolog.org/packages/xpce/UserGuide/Contents.html (на всякий случай, если вы его не видели - извините, я не знаю, отвечает ли это на ваш вопрос)   -  person FrustratedWithFormsDesigner    schedule 21.12.2012


Ответы (1)


Вот пример для начала:

:- use_module(library(pce)).

test:-
    new(D, dialog),
    new(W,  window('Test', size(100, 100))),
    send(D, append, new(B,button(solve, message(@prolog, solve, D, 10, 20)))),
    send(D, below, W),
    send(D, open),
    !.

solve(D, Row, Column) :-
  writeln(solve(D, Row, Column)).

По сути, вы должны добавить аргументы в сообщение, в этом случае я использовал D для диалога и константы 10 и 20 для строк и столбцов и просто выводил их на консоль в процедуре solve/3.

person gusbro    schedule 21.12.2012