Prolog 如何在没有静态路径的情况下在GUI上查看图像

Prolog 如何在没有静态路径的情况下在GUI上查看图像,prolog,swi-prolog,xpce,Prolog,Swi Prolog,Xpce,我想知道是否有可能在我的GUI中发送一个图像,但将路径作为事实保存在数据库中。而不是使用 资源(logo,image,image('logo.jpg'))。是否可以调用('logo.jpg')中的变量,该变量将根据调用的事实而变化?我能给您的更好提示是学习使用XPCE live文档。 从swipl win打开菜单 \Help\XPCE(GUI)手册… 从那里(标题为XPCE手册的小窗口)打开菜单\File\Demo Programs 然后从建议的列表中单击图像查看器。单击按钮[Source],在

我想知道是否有可能在我的GUI中发送一个图像,但将路径作为事实保存在数据库中。而不是使用
资源(logo,image,image('logo.jpg'))。
是否可以调用
('logo.jpg')
中的变量,该变量将根据调用的事实而变化?

我能给您的更好提示是学习使用XPCE live文档。 从swipl win打开菜单

\Help\XPCE(GUI)手册…

从那里(标题为
XPCE手册的小窗口
)打开菜单
\File\Demo Programs
然后从建议的列表中单击图像查看器。单击按钮
[Source]
,在文件底部有您要查找的代码示例

稍微干一点就可以使它变成一个可重用的组件。 例如:

/*  File:    pce_image_view.pl
    Author:  Carlo,,,
    Created: May 19 2019
    Purpose: answer https://stackoverflow.com/q/56201622/874024
*/

:- module(pce_image_view, [pce_image_view/1]).
:- use_module(library(pce)).

pce_image_view(Filename) :-
    new(I, image(Filename)),
    !,
    new(B, bitmap(I)),
    new(P, picture),
    send(P, display, B),
    send(P, open).
保存文件,查阅并调用:

?- pce_image_view('/home/carlo/Pictures/prova1.jpg').
true.
很抱歉,演示程序-这是一个相当完整的本地文件类型浏览器-现在似乎无法正常工作。无论如何,最近的语言开发提供了一些更高级别的构造,可以应用这些构造使API更舒适