Prolog/Programação com GUI

É possível escrever programas em Prolog que aproveitam os recursos da interface gráfica do usuário (GUI).

Com o SWI-Prolog, vem a biblioteca gráfica XPCE[1].

O tradicional programa Hello, World [2] fica assim:

:- use_module(library(pce)).

alo_mundo :-
        % criacao da janela
        new(D, window('Minha primeira janela')),
        % redefine o tamanho da janela
        send(D, size, size(250, 100)),
        % cria um texto na janela
        new(T, text('Hello World !')),
        % mostra o texto na posicao desejada
        send(D, display, T, point(80, 40)),
        % mostra a janela
        send(D, open).

Um programa um pouco mais complexo, que pede um nome e associa este nome ao argumento do predicado:

ask_name(Name) :-
        new(D, dialog('Register')),
        send(D, append(new(NameItem, text_item(name)))),
        send(D, append(button(ok, message(D, return, NameItem?selection)))),
        send(D, append(button(cancel, message(D, return, @nil)))),
        send(D, default_button(ok)),
        get(D, confirm, Rval),
        free(D),
        Rval \== @nil,
        Name = Rval.

Ver também editar

Referências