Установить размер и положение элементов графического интерфейса

Я написал некоторый код для создания графического интерфейса в swi-prolog, но мое главное окно слишком мало для всех моих кнопок и текстовых полей. Как я могу нарисовать, например, 6-й результат функции во "втором столбце", справа от 1-го результата?

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),
    !.

1 ответ

Решение

Посмотрите на 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).

введите описание изображения здесь

Другие вопросы по тегам