2

我已经编写了一些代码来在 swi-prolog 中创建一个 GUI,但是我的主窗口对于我所有的按钮和文本字段来说都太小了。例如,我如何在第一个结果右侧的“第二列”绘制第 6 个函数结果?

showForm :-
    new(W,  window('Test', size(800, 800))),
    new(D, dialog('Main window', size(800, 800))),

    /* 6) serach if country is in Europe */
    new(Etiq, text_item('1) Enter country here:')),
    send(D, append, Etiq),
    new(Result, label),
    send(D, append, Result),
    send(D, append, button(search, message(@prolog, memberCountry, Etiq, Result))),


    /* 7) Path form-to (serach in deep) */
    new(Path1, text('6) Path form-to (serach in deep)')),
    new(From1, text_item('Enter country FROM here:')),
    new(To1, text_item('Enter country TO here:')),
    send(D, append, Path1),
    send(D, append, From1),
    send(D, append, To1),

    send(Path1, right, Etiq),

    new(Path1Res, label),
    send(D, append, button(path, message(@prolog, dfs, From1, To1, [], Path1Res))),
    send(D, append, Path1Res),

% .....

send(D, below, W),
    send(D, open),
    !.

在此处输入图像描述

4

1 回答 1

3

看看dialog_group

showForm :-
    %new(W,  window('Test', size(800, 800))),
    new(D, dialog('Main window', size(800, 800))),
    new(H1, dialog_group(' ')),
    new(H2, dialog_group(' ')),
    send(D, append, H1),
    send(D, append, H2, right),

    /* 6) serach if country is in Europe */
    new(Etiq, text_item('1) Enter country here:')),
    send(H1, append, Etiq),
    new(Result, label),
    send(H1, append, Result),
    send(H1, append, button(search)),


    /* 7) Path form-to (serach in deep) */
    new(Path1, text('6) Path form-to (serach in deep)')),
    new(From1, text_item('Enter country FROM here:')),
    new(To1, text_item('Enter country TO here:')),
    send(H2, append, Path1),
    send(H2, append, From1),
    send(H2, append, To1),

    new(Path1Res, label),
    send(D, append, button(path)),
    send(D, append, Path1Res),

    send(D, open).

在此处输入图像描述

于 2017-05-23T20:47:27.147 回答