📜  如何在 MATLAB 中创建超链接组件?

📅  最后修改于: 2022-05-13 01:54:22.425000             🧑  作者: Mango

如何在 MATLAB 中创建超链接组件?

MATLAB 是一种基于矩阵的计算环境,具有自己的编程语言,非常易于使用和学习。它用于繁重的数学概念,借助 MATLAB 的 GUI 图形用户界面理解庞大的数据集。

在 GUI 中,超链接文本标签通常很有用。这些标签可以一键访问关键功能,改善品牌形象,并且是非侵入式操作控件,视觉效果比成熟按钮更小。在 Matlab GUI 中显示超链接有几种不同的方法,今天我将向您展示我最喜欢的一种。

基本概念是在标签上制作一个带有 HTML 链接的Java文本标签控件。当鼠标指针悬停在超链接上时,控件被更新,并建立鼠标点击回调以在系统浏览器中打开超链接目标。

当我们单击标签控件而不是超链接时(注意 href 为空)。最终结果是相同的。此外,通过简单地更改标签的 HTML字符串以显示正确的图片,此技术可用于轻松显示可点击的图标/图像,包括动画和透明 GIF。

  • hlink = uihyperlink:在新的图形窗口中创建超链接组件后返回超链接对象。链接的默认大小为 70 x 22 像素,默认文本为“超链接”。
  • hlink = uihyperlink(parent):它在提供的父容器中生成一个超链接。使用 uifigure函数或其子容器之一生成的图窗可以是父图窗。
  • hlink = uihyperlink( ,Name,Value):提供超链接属性。例如,Text 和 URL 名称-值参数可用于指定超链接的显示文本和 URL。将此选项与上述任何语法的输入参数组合一起使用。

让我们看看不同的例子来将链接与文本或组件连接起来。创建文本超链接后,它将重定向到提供的链接。

示例 1:

Matlab
% MATLAB code for hlink()
fig = uifigure;
hlink = uihyperlink(fig);
hlink.Text = 'geeksforgeeks';
hlink.URL = 'https://www.geeksforgeeks.org/';


Matlab
% MATLAB code for tooltip
hlink.URL = 'https://www.geeksforgeeks.org';
hlink.Tooltip = hlink.URL;


Matlab
% MATLAB code for Open File on Click using hlink
program = fullfile(matlabroot,'help','techdoc', ...
          'matlab_env','examples','fourier_demo2.m');
copyfile(program);
htmlFile = publish('fourier_demo2.m');
fig = uifigure;
hlink = uihyperlink(fig);
hlink.URL = ['file:///' htmlFile];


Matlab
% MATLAB code for uihyperlink
fig = uifigure;
hlink = uihyperlink(fig);


Matlab
% MATLAB code for hlink.URL
email = 'myaddress@provider.ext';
hlink.URL = ['mailto:' email];


Matlab
% MATLAB code for hlinkplot
function hyperlinkPlot
% Create a figure window and UI axes
fig = uifigure;
ax = uiaxes(fig);
  
% Create a hyperlink
hlink = uihyperlink(fig,...
    'Position',[200 350 70 22], ...
    'Text','GFG', ...
    'URL','https://www.geeksforgeeks.org//', ...
    'HyperlinkClickedFcn',@(hlink,event) plotHyperlinkClicked(hlink,ax));
end
  
% Create the function for the HyperlinkClickedFcn callback
function plotHyperlinkClicked(hlink, ax)
    L = 160*membrane(1,100);
    s = surf(ax,L);
    s.EdgeColor = 'none';
end


输出:

要显示 URL,请创建工具提示。创建默认超链接。要链接到 MathWorks 主页,请更改 URL。当应用程序用户将指针悬停在超链接上时,添加一个显示 URL 的工具提示。

示例 2:

MATLAB

% MATLAB code for tooltip
hlink.URL = 'https://www.geeksforgeeks.org';
hlink.Tooltip = hlink.URL;

输出:

单击时打开文件使用文件/ URL 方案使链接在单击时打开应用程序用户系统上的文件。使用发布,从示例程序文件创建一个 HTML 文件。首先获取程序文件的路径。然后,为了让代码在发布过程中运行,将程序文件复制到当前文件夹。

示例 3:

MATLAB

% MATLAB code for Open File on Click using hlink
program = fullfile(matlabroot,'help','techdoc', ...
          'matlab_env','examples','fourier_demo2.m');
copyfile(program);
htmlFile = publish('fourier_demo2.m');
fig = uifigure;
hlink = uihyperlink(fig);
hlink.URL = ['file:///' htmlFile];

制作带有超链接的组件。要让 MATLAB 打开文件,请使用 file:/// URL 方案。

输出:

再举一个点击发送电子邮件的例子。

示例 4:

MATLAB

% MATLAB code for uihyperlink
fig = uifigure;
hlink = uihyperlink(fig);

将电子邮件的值替换为有效的电子邮件地址以运行此示例。

MATLAB

% MATLAB code for hlink.URL
email = 'myaddress@provider.ext';
hlink.URL = ['mailto:' email];

对于单击的代码响应,会创建一个具有自定义效果的超链接:当应用程序用户点击它时,它会创建一个图并打开一个 URL。创建一组 UI 轴和绘制这些轴的 HyperlinkClickedFcn 回调来完成此操作。

在您的 MATLAB 目录中,创建一个名为 hyperlinkPlot.m 的文件,其中包含以下代码。此代码生成一个带有超链接和一组用户界面轴的窗口。当应用程序用户单击链接时,浏览器首先加载 MATLAB 产品页面,然后是绘制一些数据的 HyperlinkClickedFcn 回调。

示例 5:

MATLAB

% MATLAB code for hlinkplot
function hyperlinkPlot
% Create a figure window and UI axes
fig = uifigure;
ax = uiaxes(fig);
  
% Create a hyperlink
hlink = uihyperlink(fig,...
    'Position',[200 350 70 22], ...
    'Text','GFG', ...
    'URL','https://www.geeksforgeeks.org//', ...
    'HyperlinkClickedFcn',@(hlink,event) plotHyperlinkClicked(hlink,ax));
end
  
% Create the function for the HyperlinkClickedFcn callback
function plotHyperlinkClicked(hlink, ax)
    L = 160*membrane(1,100);
    s = surf(ax,L);
    s.EdgeColor = 'none';
end

输出: