prolog - 如何在没有静态路径的情况下在 GUI 上查看图像
问题描述
我想知道是否可以在我的 GUI 中发送图像但将路径保存为我的数据库中的事实。而不是调用它使用
resource(logo,image,image('logo.jpg')).
Is it posible to call a variable inside ('logo.jpg')
that will change based on the fact that is called?。
解决方案
我能给你的更好的提示是学习使用 XPCE 实时文档。从 swipl-win 打开菜单
\ Help \ XPCE (GUI) manual...
从那里(标题为 的小窗口XPCE Manual
)打开菜单\ File \ Demo Programs
并从建议的列表中单击Image viewer
。单击按钮[ Source ]
,在文件底部有您要查找的代码示例。
一点 DRY 就可以把它变成一个可重复使用的组件。例如:
/* 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 更舒适。
推荐阅读
- python - 类实例是否在后台持续存在?
- android - 如何区分 SQLite Android 中的相同 Id 值
- c# - SqlDataSource 超时
- c# - 如何确定 IResourceFilter 中的 Controller 名称和 Action 名称?
- c# - 节点“TreeView”是否具有唯一标识符 (id)?
- r - r dplyr 和 data.table:聚合然后加入原始表
- sql - SQL Insert Into 使某些列为空
- r - R中的核密度估计器具有加权和边界校正?
- javascript - jQuery UI 对话框上的按钮是否必须去抖动?
- sql-server - 如何在服务器上正确存储图像并在数据库中引用它们?