专题八    MATLAB图形用户界面设计

一    图形窗口与坐标轴

1. 图形对象的句柄

1.1 句柄的概念

在MATLAB中,每一个具体的图形都是由若干个不同的图形对象组成的。

在MATLAB中,用句柄来标识对象,通过句柄来访问相应对象的属性。

1.2 访问图形对象

访问图形对象是指获取或设置图形对象的属性。不同图形对象所具有的属性不同,但访问的方法是一样的。一般使用点运算符来访问对象属性。如下:

对象句柄 . 属性名

例1。

得到结果图为:

可以通过修改图形对象的属性来改变上图,如下:

1.3 获取特定图形对象句柄的函数

  • gcf:获取当前图形窗口的句柄。
  • gca:获取当前坐标轴的句柄。
  • gco:获取最近被选中的图形对象的句柄。
  • findobj:按照指定的属性来获取图形对象的句柄。

2. 图形对象的属性

2.1 图形对象的常用公共属性

  • Children属性:该对象的所有子对象的句柄组成的一个向量。
  • Parent属性:该对象的父对象的句柄。
  • Type属性:对象的类型,这是一个只读属性。
  • Tag属性:用于给对象定义一个标识符。

例2:分别在两个子图中绘制曲线和曲面。然后设置子图1的背景色为黄色,曲线线条的颜色为红色,设置子图2的背景色为青色。

subplot(1,2,1);
h1 = fplot(@(t)t.*sin(t), @(t)t.*cos(t), [0, 6*pi]); % h1是曲线的句柄
axis equal;
subplot(1,2,2);
[x, y, z] = peaks(20);
h2 = mesh(x, y, z); % h2是曲面的句柄
h10 = h1.Parent; % h10是曲线父对象的句柄,即坐标轴的句柄
h10.Color = 'y'; % 设置坐标轴的颜色为黄色
h1.Color = 'r'; % 设置曲线的颜色为红色
h2.Parent.Color = 'cyan'; % 设置坐标轴的颜色为青色

2.2 图形对象的常用动态属性

  • KeyPressFcn属性:定义按下键盘按键事件的响应。
  • CreateFcn属性:定义创建图形对象时做出的响应。
  • DeleteFcn属性:定义取消图形对象时做出的响应。
  • WindowButtonDownFcn或ButtonDownFcn属性:定义单击鼠标左键事件的响应。

3. 图形窗口的操作

3.1 建立图形窗口对象

MATLAB通过figure函数来创建窗口对象,其调用格式为:

  • 句柄变量=figure(属性1, 属性值1, 属性2, 属性值2, ...),其中,属性用于设置图形窗口的特征。
  • 句柄变量=figure,按MATLAB默认的属性值建立图形窗口。
  • figure(窗口句柄),设定该句柄对应的窗口为当前窗口。

3.2 图形窗口属性

  • MenuBar属性:控制图形窗口是否具有菜单条,其取值为'none'或'figure'。
  • Name属性:指定图形窗口的标题。
  • NumberTitle属性:决定着在图形窗口的标题中是否以“Figure n:”为标题前缀。取值为'on'或者'off'。
  • Color属性:设定图形窗口背景的颜色。
  • 其他属性查看帮助文档。

例3:建立一个图形窗口。该图形窗口没有菜单条,标题名称为“图形窗口示例”。图形窗口对象起始于屏幕左下角(1,1)处,宽度和高度分别是300像素点和200像素点。背景颜色为青色。当用户从键盘按下任意一个键时,然后在窗口中单击鼠标左键,在鼠标指针所在的位置将显示“Hello World!”。

hf = figure; % 建立一个图形窗口
hf.Color = 'cyan'; % 设置背景颜色为青色
hf.Position = [1, 1, 300, 200]; 
hf.Name = '图形窗口示例';
hf.NumberTitle = 'on'; % 以Figure n:为图形窗口的标题前缀 
hf.MenuBar = 'none'; % 图形窗口无菜单条
hf.ButtonDownFcn = 'gtext(''Hello World!'')';

4. 坐标轴对象的操作

4.1 建立坐标轴对象

使用axes函数,其调用格式是:

  • 句柄变量=axes(属性1,属性值1,属性2,属性值2,…),其中,属性用于设置坐标轴的外观和行为。
  • 句柄变量=axes,按MATLAB默认的属性值在当前图形窗口创建坐标轴。
  • axes(坐标轴句柄),设定该句柄代表的坐标轴为当前坐标轴。

4.2 坐标轴对象的属性

  • Position属性:定义坐标轴在图形窗口中的位置和大小。
  • Units属性:定义坐标轴使用的度量单位,默认值是'normalized'。
  • Box属性:决定坐标轴是否带有边框,可取值是'on'或'off',默认值为'off'。
  • GridLineStyle属性:用于定义网格线的类型,可取值是':','-','-.','--','none',默认值是':'。
  • Title属性:用于对坐标轴标题对象进行操作,取值是通过title函数建立的标题对象的句柄。
  • XLabel, YLabel, ZLabel属性:取值分别是通过xlabel, ylabel, zlabel函数建立的标签对象的句柄。
  • XLim, YLim, ZLim属性:分别定义各坐标轴的下限和上限,取值是2元向量[Lmin, Lmax],默认值是[0,1]。
  • XScale, YScale, ZScale属性:定义各坐标轴的刻度类型。可取值是'linear','log'。
  • View属性:定义视点。取值是2元向量[az, el],az定义视点的方位角,el定义视点的仰角。坐标轴默认视点的方位角是0°,仰角是90°。
  • ColorOrder属性:用于设置多条曲线的颜色顺序,是一个n×3矩阵,矩阵的每一行用RGB三元组表示一种颜色,默认n为7(即有7种颜色)。

例4:利用坐标轴对象实现图形窗口的分割。

close all; clear; clc; 
hal = axes('Position', [0.1, 0.1, 0.7, 0.7]); 
contour(peaks(20));
hal.Title = title('等高线');
hal.YLabel = ylabel('南北向');
hal.XLabel = xlabel('东西向');
hal = axes('Position', [0.65, 0.7, 0.28, 0.28]); 
surf(peaks(20));
ha2.View = [-30, 45]; 

例5:定义包含4种颜色的ColorOrder属性,绘制6条曲线。

close all; clear; clc; 
x = [0, 0]; 
y = [0, 1]; 
ha = axes; % 按MATLAB默认的属性值在当前图形窗口创建坐标轴。
ha.ColorOrder = [0,0,0; 1,0,0; 0,1,0; 0,0,1]; % 定义4种颜色
hold on; 
plot(x,y, x+0.5,y, x+1,y, x+1.5,y, x+2,y, x+2.5,y); % 绘制6条曲线
ha.XLim = [-0.2, 3];
ha.YLim = [-0.2, 1.2];


二    曲线与曲面对象

曲线和曲面是MATLAB中常见的图形对象。本部分介绍如何在坐标轴中建立曲线对象和曲面对象,以及如何修改这些对象的属性来调整它们的特征。

2.1 建立曲线对象

line函数的调用格式为:句柄变量=line(x, y, z, 属性1, 属性值1, 属性2, 属性值2, ...),其中,x, y, z是等长的向量或同型的矩阵,存储数据点的坐标。

2.2 曲线对象的常用属性

  • Color属性:定义曲线的颜色,默认值为[0,0,0]。
  • LineStyle属性:定义线型,默认值为‘-’。
  • LineWidth属性:定义线宽,默认值为0.5磅。
  • Marker属性:定义数据点标记符号,默认值为‘none’。
  • MarkerSize属性:定义数据点标记符号的大小,默认值为6磅。
  • XData、YData、ZData属性:设置3个坐标轴的数据源。

例6:利用曲线对象绘制奥运五环图案。

close all; clear; clc; 
t = -0.1 : 0.1 : 2*pi; % 取-0.1开始是为了让各个圆环首尾闭合
x = cos(t); 
y = sin(t); 
line(x, y, 'Color', 'b');
line(x+1.2, y-1, 'Color', 'y');
line(x+2.4, y, 'Color', 'k'); % k表示黑色
line(x+3.6, y-1, 'Color', 'g');
line(x+4.8, y, 'Color', 'r');
ha = gca; % 获取当前坐标轴的句柄
for n = 1 : size(ha.Children) % ha.Children表示坐标轴对象的所有子对象句柄组成的向量ha.Children(n).LineWidth = 5; % 逐个设置曲线的线宽
end
ha.XLim = [-2, 7]; 
ha.YLim = [-4, 3]; 
axis equal; 

2.3 建立曲面对象

建立曲面对象使用surface函数,其调用格式为:句柄变量=surface(x, y, z, c, 属性1, 属性值1, 属性2, 属性值2, ...),其中,x, y, z是等长的向量或者同型的矩阵,存储数据点的坐标,与mesh、surf函数含义相同。c用于指定在不同高度下的曲面颜色。 

surf函数每调用一次,就会刷新坐标轴,清空原有图形,再绘制新的图形。而surface函数生成的曲面则在已有图形上叠加显示。利用surface函数建立的曲面对象,默认视点在图形正上方,即方位角为0°,仰角为90°。

2.4 与曲面对象有关的属性

曲面对象除了有与曲线对象相同的属性以外,还有其他一些常用的属性,如:

  • FaceColor属性:定义曲面网格片的颜色。可取值为:
‘flat’每一个网格片用单一颜色填充。
'interp'用渐变方式填充网格片
'none'网格片无颜色
'texturemap'用Cdata属性定义的颜色填充网格片
RGB向量或代表颜色的字符-
  • EdgeColor属性:定义曲面网格线的颜色。

例7:利用曲面对象绘制立体圆环,圆环方程为:

\left\{\begin{matrix}x=(8+3cosv)cosu & \\ y=(8+3cosv)sinu, & \\ z=3sinv & \end{matrix}\right.,其中u∈[0, 2π],v∈[0, 2π]

close all; clear; clc; 
r = linspace(0, 2*pi, 60); 
[u,v] = meshgrid(r); 
x = (8+3*cos(v)).*cos(u);
y = (8+3*cos(v)).*sin(u);
z = 3*sin(v);
axes('View', [-37.5, 30]); % 建立坐标轴对象
hs = surface(x, y, z); % 建立曲面对象
axis equal; 
hs.EdgeColor = 'none'; % 网格线无颜色
hs.FaceColor = 'interp'; % 设置曲面网格片的颜色

2.5 光照处理

2.5.1 创建光源对象

light函数的调用格式为:对象句柄=linght(属性1,属性值1,属性2,属性值2,...),其中,属性指定光源的特性。

2.5.2 光源对象的属性

  • Color属性:设置光的颜色,值是RGB三元数组或者代表颜色的字符,默认为白色。
  • Style属性:设置光源类型,其取值为‘infinite’(默认值)或'local',分别表示无穷远光和近光。
  • Position属性:指定光源位置,值是一个3元向量。

2.5.3 设置光照模式

利用lighting命令可以设置光照模式,lighting命令格式为:lighting 选项,其中,选项可取值为:

  • flat(默认值):使得入射光均匀洒落在图形对象的每个面上。
  • gouraud:先对顶点颜色插补,再对顶点勾画的面上颜色进行插补。
  • phong:对顶点处的法线插值,再计算各个像素的反光。
  • none:关闭所有光源。

例8:绘制光照处理后的圆环面并观察不同光照模式下的效果。

close all; clear; clc; 
r = linspace(0, 2*pi, 60); 
[u, v] = meshgrid(r); 
x = (8+3*cos(v)).*cos(u); 
y = (8+3*cos(v)).*sin(u);
z = 3*sin(v);
axes('Position', [0.05, 0.675, 1.0, 0.3], 'View', [-37.5, 30]);
hs1 = surface(x, y, z);
axis equal; 
hs1.EdgeColor = 'none'; 
hs1.FaceColor = 'interp'; 
axes('Position', [0.05, 0.35, 1.0, 0.3], 'View', [-37.5, 30]);
hs2 = surface(x, y, z);
axis equal; 
hs2.EdgeColor = 'none'; 
hs2.FaceColor = 'interp'; 
light('Position', [0, 0, 8]); 
lighting flat; 
axes('Position', [0.05, 0.025, 1.0, 0.3], 'View', [-37.5, 30]);
hs3 = surface(x, y, z);
axis equal; 
hs3.EdgeColor = 'none'; 
hs3.FaceColor = 'interp'; 
light('Position', [0, 0, 8]); 
lighting phong; 

2.6 图形对象的反射特性

  • SpecularStrength属性:控制对象表面镜面反射的强度,属性值取0-1之间的数,默认值为0.9。
  • DiffuseStrength属性:控制对象表面漫反射的强度,属性值取0-1之间的数,默认值为0.6。
  • AmbientStrength属性:确定环境光的强度,属性值取0-1之间的数,默认值为0.3。
  • SpecularExponent属性:控制镜面反射指数,值大于等于1,大多设置在5-20之间,默认值为10。
  • BackFaceLinghting属性:控制对象内表面和外表面的差别,取值为‘unlit’,‘lit’,‘reverselit’,默认值为‘reverselit’。

三   图形用户界面设计方法 

1. 图形用户界面

图形用户界面(Graphical User Interface, GUI):用户与计算机进行信息交流的窗口。

设计图形用户界面的方法:

  • 调用建立用户界面控件的函数
  • 使用MATLAB提供的GUIDE工具进行可视化设计

2. 控件对象及其操作

2.1 常用控件

  • 输入和输出类控件:编辑框、静态文本、列表框、滑动条等。
  • 实施确认、选择操作类控件:按钮、双位按钮、单选按钮、复选框等。

2.2 建立控件对象

uicontrol函数用于建立控件对象,其调用格式为:句柄变量=uicontrol(图形窗口句柄, 属性1, 属性值1, 属性2, 属性值2, ...),其中,属性及其取值决定了控件的特征。若省略图形窗口句柄,默认在当前图形窗口建立控件对象。

2.3 控件对象的基本控制属性

控件对象除了具有图形对象的公共属性外,还具有一些特殊的控制属性,如:

  • Style属性:定义控件对象的类型。例如'pushbutton'表示按钮对象,'edit'表示编辑框,等等。
  • String属性:定义控件对象的说明文字。
  • Tag属性:标识控件对象。
  • Enable属性:控制控件对象是否可用。
  • Position属性:定义控件对象在父对象上的位置和大小,其取值形式为[x, y, w, h]。
  • Callback属性:其属性值是描述命令的字符串或函数句柄,当选中控件时,系统将自动执行字符串描述的命令或调用句柄所代表的的函数,实施相关操作。

例9:在图形窗口中建立三个按钮对象,当单击按钮时分别绘制正弦曲线、显示或隐藏坐标轴的网格、清除坐标轴的图形。

close all; clear; clc; 
ha = axes('Units', 'pixels', 'Position', [40, 40, 360, 360]); 
ptgrid = uicontrol('Style', 'pushbutton', ...'String', '网格', 'Position', [450, 150, 60, 30], 'Callback', 'grid'); 
btncla = uicontrol('Style', 'pushbutton', ...'String', '清除', 'Position', [450, 100, 60, 30], 'Callback', 'cla');
btnplot = uicontrol('Style', 'pushbutton', ...'String', '绘图', 'Position', [450, 200, 60, 30]);

写完上述代码之后,可以生成如下效果:

此时点击“绘图”按钮是不会绘制正弦曲线的。因为此时并未给“绘图”按钮写入回调函数。回调函数定义对象怎样处理信息并响应某事件。回调函数的定义格式为:

function 函数名(source, eventdata)
...
end

其中,参数source是发生事件的源控件对象句柄,eventdata存储事件数据。例如,将上例的“绘图”按钮要实现的功能定义为回调函数plot_sin。将回调函数保存在当前文件夹下。

function plot_sin(source, callbackdata)
t = -pi : pi/20 : pi; 
plot(t, sin(t));
end

设置“绘图”按钮的Callback属性值是plot_sin函数句柄。完整的代码如下:

close all; clear; clc; 
ha = axes('Units', 'pixels', 'Position', [40, 40, 360, 360]); 
ptgrid = uicontrol('Style', 'pushbutton', ...'String', '网格', 'Position', [450, 150, 60, 30], 'Callback', 'grid'); 
btncla = uicontrol('Style', 'pushbutton', ...'String', '清除', 'Position', [450, 100, 60, 30], 'Callback', 'cla');
btnplot = uicontrol('Style', 'pushbutton', ...'String', '绘图', 'Position', [450, 200, 60, 30]);
btnplot.Callback = @plot_sin;   %%%%%%%%%%%% btnplot的回调函数 %%%%%%%%%%%%%%%
function plot_sin(source, callbackdata)
t = -pi : pi/20 : pi; 
plot(t, sin(t));
end

程序运行之后,上例中的3个按钮可以正常操作。

3. 菜单对象及其操作

3.1 建立菜单对象

用户菜单一般包括一级菜单和二级菜单,每一级菜单又包括若干菜单项。MATLAB提供了uimenu函数用于创建、设置、修改菜单。

  • 建立一级菜单项的函数调用格式为:

一级菜单项句柄 = uimenu(图形窗口句柄,属性1,属性值1,属性2,属性值2,…)

  • 建立子菜单项的函数调用格式为:

子菜单项句柄=uimenu(上级菜单项句柄,属性1,属性值1,属性2,属性值2,…)

3.2 菜单属性

菜单对象除了具有Children、Parent、Tag等公共属性外,还具有其他一些特殊属性:

  • Label属性:定义菜单项的名字。
  • Accelerator属性:定义菜单项的快捷键。
  • Checked属性:指示菜单项是否已选中。
  • Enable属性:控制菜单项的可选择性。
  • Separator属性:在菜单项上方添加一条分隔线。

例10:在例9的界面中添加“图形选项”菜单项,其中包括一个二级菜单项“线型”,其下又有3个子菜单项,分别为“实线”、“虚线”、“双划线”。

close all; clear; clc; 
ha = axes('Units', 'pixels', 'Position', [40, 40, 360, 360]); 
ptgrid = uicontrol('Style', 'pushbutton', ...'String', '网格', 'Position', [450, 150, 60, 30], 'Callback', 'grid'); 
btncla = uicontrol('Style', 'pushbutton', ...'String', '清除', 'Position', [450, 100, 60, 30], 'Callback', 'cla');
btnplot = uicontrol('Style', 'pushbutton', ...'String', '绘图', 'Position', [450, 200, 60, 30]);
btnplot.Callback = @plot_sin;   %%%%%%%%%%% 例10添加的代码 %%%%%%%%%%%%%%%%%%%
hopt = uimenu(gcf, 'Label', '图形选项', 'Accelerator', 'L'); % hopt是一级菜单句柄
% gcf获取当前图形窗口的句柄,Label定义菜单项的名字为“图形选项”,Accelerator定义菜单项的快捷键为L
hLStyle = uimenu(hopt, 'Label', '线型', 'Tag', 'LStyle', 'Enable', 'off'); 
% hLStyle是子菜单项句柄,Label定义子菜单项的名字为“线型”,Tag定义标签为LStyle,Enable控制菜单项的可选择性
hL_Solid = uimenu(hLStyle, 'Label', '实线', ...'Tag', 'Solid', 'Callback', @MLine_Type);
hL_Dotted = uimenu(hLStyle, 'Label', '虚线', ...'Tag', 'Dotted', 'Callback', @MLine_Type); 
hL_Dashed = uimenu(hLStyle, 'Label', '双划线', ...'Tag', 'Dashed', 'Callback', @MLine_Type); %%%%%%%%%%% 定义函数MLine_Type %%%%%%%%%%%%%%%
function MLine_Type(source, callbackdata)hline = findobj('Type', 'line'); % findobj按照指定的属性来获取图形对象的句柄if strcmp(source.Tag, 'Solid') == 1  % strcmp函数作用:比较字符串是否相同hline.LineStyle = '-';elseif strcmp(source.Tag, 'Dotted') == 1hline.LineStyle = ':';elseif strcmp(source.Tag, 'Dashed') == 1hline.LineStyle = '--';end
end%%%%%%%%%%%% btnplot的回调函数 %%%%%%%%%%%%%%%
function plot_sin(source, callbackdata)t = -pi : pi/20 : pi; plot(t, sin(t));h1 = findobj('Tag', 'LStyle'); h1.Enable = 'on'; 
end

程序运行后,图形界面的菜单栏将多出“图形选项”菜单项,这是菜单项“线型”处于不可选取的状态。单击“绘图”按钮绘制正弦曲线后,菜单项“线型”变为可选取状态,这是可以改变线型。


四    用户界面设计工具

GUIDE: Graphical User Interface Development Environment(图形用户界面开发环境)

4.1 图形用户界面设计窗口

4.1.1 打开GUIDE有两种方法:

  • 在MATLAB命令行窗口输入guide命令。
  • 在MATLAB主窗口中选择“主页”选项卡,单击工具栏的“新建”命令按钮,再选择“应用程序(APP)”下的GUIDE命令。

4.1.2 图形用户界面设计模板

设计模板有4种,如下图:

4.1.3 图形用户界面设计窗口

图形用户界面设计窗口由菜单栏、工具栏、控件选项板、界面设计区、状态栏等部分组成。如下图:

工具栏中几个按钮的作用:

  • 属性检查器:用于检查/修改对象属性的工具。
  • 菜单编辑器:添加自定义菜单,设置菜单项的属性。
  • 对象浏览器:用于查看图形对象和展示界面的组织架构。

例11:建立一个图形用户界面,该界面包括1个坐标轴,3个静态文本,3个可编辑文本,2个按钮。还有1个按钮组,里面有两个单选按钮。

在图形用户界面设计窗口中设计的效果图(自己瞎设计颜色的)如下:

可在属性编辑器中修改控件对象的属性,修改之后,如下图:

保存之后,会生成.fig文件,同时系统会自动生成一个同名的.m文件。该.m文件保存了图形窗口的初始化函数,以及各控件对象的回调函数。

回调属性与回调函数:

1. 回调属性

  • Callback属性:按钮类控件和菜单项的单击事件的默认回调属性。
  • CreateFcn属性:定义创建图形对象的响应。
  • DeleteFcn属性:定义取消图形对象的响应。
  • ButtonDownFcn属性:定义单击鼠标键按下的响应。
  • KeyPressFcn属性:定义键盘键按下的响应。
  • SelectionChangeFcn属性:定义改变选项的响应。

2. 回调函数框架

function 对象标识_Callback(hObject, eventdata, handles)

其中,hObject为发生事件的源控件,eventdata为事件数据,handles保存图形界面中所有对象的句柄。

例12:在例11的菜单栏添加1个一级菜单项“绘图选项”,而且这个菜单只有在画有曲线时才是可用的。其下有6项,前3项定义线型,后3项定义曲线颜色。

function varargout = test(varargin)
% TEST MATLAB code for test.fig
%      TEST, by itself, creates a new TEST or raises the existing
%      singleton*.
%
%      H = TEST returns the handle to a new TEST or the handle to
%      the existing singleton*.
%
%      TEST('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in TEST.M with the given input arguments.
%
%      TEST('Property','Value',...) creates a new TEST or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before test_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to test_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help test% Last Modified by GUIDE v2.5 27-Jul-2018 10:34:37% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @test_OpeningFcn, ...'gui_OutputFcn',  @test_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before test is made visible.
function test_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to test (see VARARGIN)% Choose default command line output for test
handles.output = hObject;% Update handles structure
guidata(hObject, handles);% UIWAIT makes test wait for user response (see UIRESUME)
% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
function varargout = test_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;function editfz_Callback(hObject, eventdata, handles)
% hObject    handle to editfz (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of editfz as text
%        str2double(get(hObject,'String')) returns contents of editfz as a double% --- Executes during object creation, after setting all properties.
function editfz_CreateFcn(hObject, eventdata, handles)
% hObject    handle to editfz (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
endfunction editpl_Callback(hObject, eventdata, handles)
% hObject    handle to editpl (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of editpl as text
%        str2double(get(hObject,'String')) returns contents of editpl as a double% --- Executes during object creation, after setting all properties.
function editpl_CreateFcn(hObject, eventdata, handles)
% hObject    handle to editpl (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
endfunction editxj_Callback(hObject, eventdata, handles)
% hObject    handle to editxj (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of editxj as text
%        str2double(get(hObject,'String')) returns contents of editxj as a double% --- Executes during object creation, after setting all properties.
function editxj_CreateFcn(hObject, eventdata, handles)
% hObject    handle to editxj (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
end% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
A = str2double(handles.editfz.String); % 幅值
f = str2double(handles.editpl.String)/50; % 频率
theta = str2double(handles.editxj.String)/180*pi; % 相角
x = linspace(0, 2*pi, 60); 
if handles.OpSin.Value == 1y = A*sin(f*x+theta);
elsey = A*cos(f*x+theta);
end
plot(x, y); 
handles.PStyle.Enable = 'on';% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
cla; 
handles.PStyle.Enable = 'off'; % --------------------------------------------------------------------
function PStyle_Callback(hObject, eventdata, handles)
% hObject    handle to PStyle (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------
function Solid_Callback(hObject, eventdata, handles)
% hObject    handle to Solid (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
hline = findobj('Type', 'line'); 
hline.LineStyle = '-'; 
handles.Solid.Checked = 'on';
handles.Dotted.Checked = 'off'; 
handles.Dashed.Checked = 'off'; % --------------------------------------------------------------------
function Dotted_Callback(hObject, eventdata, handles)
% hObject    handle to Dotted (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
hline = findobj('Type', 'line'); 
hline.LineStyle = ':'; 
handles.Solid.Checked = 'off';
handles.Dotted.Checked = 'on'; 
handles.Dashed.Checked = 'off'; % --------------------------------------------------------------------
function Dashed_Callback(hObject, eventdata, handles)
% hObject    handle to Dashed (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
hline = findobj('Type', 'line'); 
hline.LineStyle = '--'; 
handles.Solid.Checked = 'off';
handles.Dotted.Checked = 'off'; 
handles.Dashed.Checked = 'on'; % --------------------------------------------------------------------
function r_Callback(hObject, eventdata, handles)
% hObject    handle to r (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
hline = findobj('Type', 'line'); 
hline.Color = 'r'; 
handles.r.Checked = 'on'; 
handles.g.Checked = 'off'; 
handles.b.Checked = 'off'; % --------------------------------------------------------------------
function g_Callback(hObject, eventdata, handles)
% hObject    handle to g (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
hline = findobj('Type', 'line'); 
hline.Color = 'g'; 
handles.r.Checked = 'off'; 
handles.g.Checked = 'on'; 
handles.b.Checked = 'off'; % --------------------------------------------------------------------
function b_Callback(hObject, eventdata, handles)
% hObject    handle to b (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
hline = findobj('Type', 'line'); 
hline.Color = 'b'; 
handles.r.Checked = 'off'; 
handles.g.Checked = 'off'; 
handles.b.Checked = 'on'; 


五    APP设计工具

这里的APP是指具有图形用户界面的MATLAB程序。APP Designer是一个可视化的集成开发环境,提供了仪表、旋钮等组件,采用面向对象的设计方法。利用APP Designer可以快速开发出应用程序。

5.1 打开APP Designer

  • 在MATLAB命令行窗口输入appdesigner命令。
  • 在MATLAB主窗口中选择“主页”选项卡,单击工具栏“新建”命令按钮,再选择“应用程序”下的“APP Designer”命令。

5.2 APP Designer窗口

APP Designer窗口由3个部分组成,分别是:快速访问工具栏、功能区、APP编辑器。

5.3 APP编辑器

  • 设计视图:用于编辑用户界面。
  • 代码视图:用于编辑、调试、分析代码。

例13:建立一个APP用户界面,该界面包括1个坐标轴,2个旋钮,2个按钮和1个按钮组。

步骤1:打开APP设计器窗口,添加组件

步骤2:利用属性面板设置组件对象的属性

步骤3:定义回调函数。在定义回调函数之前,需要补充以下内容:

APP程序采用面向对象设计模式,声明对象、定义函数、设置属性和共享数据都封装在一个类中,一个MATLAB文件就是一个类的定义。

(1) 类的基本结构

  • properties段:属性的定义,主要包含属性声明代码。
  • methods段:方法的定义,由若干函数组成。回调函数只有一个参数app,为界面句柄,存储了界面中各个成员的数据。
classdef 类名 < matlab.apps.AppBaseproperties (Access = public)...endmethods (Access = private)function 函数1(app)...endfunction 函数2(app)...end    end 
end

(2) 访问权限

存取数据和调用函数称为访问对象成员。

  • public:可用于与App的其他类共享数据。
  • private:只允许在本类中访问。以下属性和函数的默认访问权限为private:属性的声明、界面的启动函数startupFcn、建立界面组件的函数createComponents、回调函数。

步骤4:将APP程序打包,打包安装之后可以在MATLAB主窗口中APP主页下直接使用该APP程序。

单击App Designer窗口的“设计器”选项卡工具栏中的“App打包”按钮,弹出“应用程序打包”对话框。

回到例13中:实现界面的绘图功能。单击“绘图”按钮,以“倍频”旋钮的值和“相角”旋钮的值为三角函数的参数绘制曲线。单击“清空”按钮,清除坐标轴中的图形。

classdef AppDomo < matlab.apps.AppBase% Properties that correspond to app componentsproperties (Access = public)UIFigure     matlab.ui.FigureUIAxes       matlab.ui.control.UIAxesLabel        matlab.ui.control.LabelKnob         matlab.ui.control.KnobButtonGroup  matlab.ui.container.ButtonGroupsinxButton   matlab.ui.control.ToggleButtoncosxButton   matlab.ui.control.ToggleButtonButton_2     matlab.ui.control.ButtonButton_3     matlab.ui.control.ButtonKnob_2Label  matlab.ui.control.LabelKnob_2       matlab.ui.control.DiscreteKnobendmethods (Access = private)% Button pushed function: Button_2function Button_2Pushed(app, event)f = str2double(app.Knob_2.Value); theta = app.Knob.Value/180*pi; x = linspace(0, 2*pi, 60); if app.sinxButton.Value == 1y = sin(f*x + theta);elsey = cos(f*x + theta);  end% plot函数的第1个参数必须是坐标轴对象句柄% plot函数默认的线宽是1,APP程序的线宽必须小于0.4plot(app.UIAxes, x, y, 'LineWidth', 0.2); end% Button pushed function: Button_3function Button_3Pushed(app, event)cla(app.UIAxes); endend% App initialization and constructionmethods (Access = private)% Create UIFigure and componentsfunction createComponents(app)% Create UIFigureapp.UIFigure = uifigure;app.UIFigure.Position = [100 100 640 480];app.UIFigure.Name = 'UI Figure';% Create UIAxesapp.UIAxes = uiaxes(app.UIFigure);title(app.UIAxes, '显示区')xlabel(app.UIAxes, 'X')ylabel(app.UIAxes, 'Y')app.UIAxes.Box = 'on';app.UIAxes.Position = [61 239 300 185];% Create Labelapp.Label = uilabel(app.UIFigure);app.Label.HorizontalAlignment = 'center';app.Label.Position = [454 265 29 15];app.Label.Text = '相角';% Create Knobapp.Knob = uiknob(app.UIFigure, 'continuous');app.Knob.Limits = [0 360];app.Knob.Position = [438 314 60 60];% Create ButtonGroupapp.ButtonGroup = uibuttongroup(app.UIFigure);app.ButtonGroup.Title = '图形函数';app.ButtonGroup.Position = [106 108 123 83];% Create sinxButtonapp.sinxButton = uitogglebutton(app.ButtonGroup);app.sinxButton.Text = 'sin(x)';app.sinxButton.Position = [11 30 100 22];app.sinxButton.Value = true;% Create cosxButtonapp.cosxButton = uitogglebutton(app.ButtonGroup);app.cosxButton.Text = 'cos(x)';app.cosxButton.Position = [11 9 100 22];% Create Button_2app.Button_2 = uibutton(app.UIFigure, 'push');app.Button_2.ButtonPushedFcn = createCallbackFcn(app, @Button_2Pushed, true);app.Button_2.Position = [271 169 100 22];app.Button_2.Text = '绘图';% Create Button_3app.Button_3 = uibutton(app.UIFigure, 'push');app.Button_3.ButtonPushedFcn = createCallbackFcn(app, @Button_3Pushed, true);app.Button_3.Position = [271 117 100 22];app.Button_3.Text = '清空';% Create Knob_2Labelapp.Knob_2Label = uilabel(app.UIFigure);app.Knob_2Label.HorizontalAlignment = 'center';app.Knob_2Label.Position = [456 117 29 15];app.Knob_2Label.Text = '倍频';% Create Knob_2app.Knob_2 = uiknob(app.UIFigure, 'discrete');app.Knob_2.Items = {'0', '1', '2', '3'};app.Knob_2.Position = [439 147 60 60];app.Knob_2.Value = '0';endendmethods (Access = public)% Construct appfunction app = AppDomo% Create and configure componentscreateComponents(app)% Register the app with App DesignerregisterApp(app, app.UIFigure)if nargout == 0clear appendend% Code that executes before app deletionfunction delete(app)% Delete UIFigure when app is deleteddelete(app.UIFigure)endend
end


六    图形用户界面应用举例

本节介绍一个GUIDE设计实例。

例14:利用GUIDE设计工具设计如图所示的用户界面。该界面可以显示表面图、网格图、等高线图。绘制图形的功能通过3个命令按钮来实现,绘制图形所需要的数据通过一个列表来选取。方位角和仰角在视点面板中设置,图形使用的色图通过下拉列表进行选择,着色方式通过单选按钮组进行选择。切换按钮用于隐藏或显示坐标轴网格。

步骤1:打开图形用户界面设计窗口,添加有关图形对象,并保存图形用户界面。

步骤2:利用属性检查器设置界面对象的属性。

  • String属性:用于指定控件上的文本以及列表框和弹出式菜单的选项。弹出式菜单的选项间使用Enter作为分隔符。
  • Tag属性:定义控件标识。
  • Value属性:设置控件的值。

本例中按下图方式设置界面对象的属性:(图中静态文本1和静态文本2的String属性分别输入仰角和方位角)

设置好之后如下图所示:

步骤3:利用对齐对象工具,调整控件对象的相对位置。

步骤4:编写代码,实现控件功能。

(1) .m文件中回调函数的框架

控件Tag_Call类型(hObject, eventdata, handles)

其中,hObject是发生事件的源控件,eventdata是事件数据,handles是对象句柄集。

(2) 跟图形窗口有关的3个函数:

  • _OpeningFcn函数:可以在这个函数内完成数据初始化设置、GUI界面的控制和调整等工作。
  • _OutputFcn函数:用于控制输出运行结果。
  • _Callback函数:用于控制窗口的默认事件,即单击窗口空白区域的触发行为。

(3) 为图形窗口的打开事件编写响应代码。代码写在_OpeningFcn函数中。

(4) 为3个绘图按钮编写响应代码。

(5) 为切换按钮编写响应代码。

(6) 为列表框编写响应代码。

(7) 为色图弹出式菜单编写响应代码。

(8) 为视点设置按钮编写响应代码。

(9) 为着色方式按钮组ChooseShading的SelectionChanged事件编写响应代码。

(10) 运行图形用户界面。

完整效果如下,各功能可用:

代码如下:

function varargout = GUIDemo(varargin)
% GUIDEMO MATLAB code for GUIDemo.fig
%      GUIDEMO, by itself, creates a new GUIDEMO or raises the existing
%      singleton*.
%
%      H = GUIDEMO returns the handle to a new GUIDEMO or the handle to
%      the existing singleton*.
%
%      GUIDEMO('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in GUIDEMO.M with the given input arguments.
%
%      GUIDEMO('Property','Value',...) creates a new GUIDEMO or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before GUIDemo_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to GUIDemo_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help GUIDemo% Last Modified by GUIDE v2.5 06-Aug-2018 10:15:31% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @GUIDemo_OpeningFcn, ...'gui_OutputFcn',  @GUIDemo_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before GUIDemo is made visible.
function GUIDemo_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to GUIDemo (see VARARGIN)
handles.peaks = peaks(34); 
handles.membrane = membrane; 
[x, y] = meshgrid(-8:0.3:8); 
r = sqrt(x.^2+y.^2); 
sinc = sin(r)./(r+eps);
handles.sinc = sinc; 
handles.current_data = handles.sinc; 
colormap(spring); 
grid on; % Choose default command line output for GUIDemo
handles.output = hObject;% Update handles structure
guidata(hObject, handles);% UIWAIT makes GUIDemo wait for user response (see UIRESUME)
% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
function varargout = GUIDemo_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;% --- Executes on button press in Mesh.
function Mesh_Callback(hObject, eventdata, handles)
% hObject    handle to Mesh (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
mesh(handles.current_data); 
handles.GridSwitch.String = '隐藏网格';
handles.GridSwitch.Value = 1;% --- Executes on button press in Surf.
function Surf_Callback(hObject, eventdata, handles)
% hObject    handle to Surf (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
surf(handles.current_data); 
handles.GridSwitch.String = '隐藏网格';
handles.GridSwitch.Value = 1;% --- Executes on button press in Contour3.
function Contour3_Callback(hObject, eventdata, handles)
% hObject    handle to Contour3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
contour3(handles.current_data);
handles.GridSwitch.String = '隐藏网格';
handles.GridSwitch.Value = 1;% --- Executes on selection change in ChooseFun.
function ChooseFun_Callback(hObject, eventdata, handles)
% hObject    handle to ChooseFun (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
str = hObject.String;
val = hObject.Value; 
switch strtrim(str{val}) % strtrim函数用于去除字符串的首尾空格case 'Peaks' handles.current_data = handles.peaks; case 'Membrane'handles.current_data = handles.membrane;case 'Sinc'handles.current_data = handles.sinc;
end
guidata(hObject, handles); % guidata函数用于保存和更新数据% Hints: contents = cellstr(get(hObject,'String')) returns ChooseFun contents as cell array
%        contents{get(hObject,'Value')} returns selected item from ChooseFun% --- Executes during object creation, after setting all properties.
function ChooseFun_CreateFcn(hObject, eventdata, handles)
% hObject    handle to ChooseFun (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called% Hint: listbox controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
end% --- Executes on selection change in ChooseCMap.
function ChooseCMap_Callback(hObject, eventdata, handles)
% hObject    handle to ChooseCMap (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
str = hObject.String; 
cm = hObject.Value; 
colormap(eval(str{cm})); % Hints: contents = cellstr(get(hObject,'String')) returns ChooseCMap contents as cell array
%        contents{get(hObject,'Value')} returns selected item from ChooseCMap% --- Executes during object creation, after setting all properties.
function ChooseCMap_CreateFcn(hObject, eventdata, handles)
% hObject    handle to ChooseCMap (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
end% --- Executes on button press in GridSwitch.
function GridSwitch_Callback(hObject, eventdata, handles)
% hObject    handle to GridSwitch (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
if hObject.Value == 1grid on; hObject.String = '隐藏网格';
elsegrid off; hObject.String = '显示网格';
end% Hint: get(hObject,'Value') returns toggle state of GridSwitchfunction edit_el_Callback(hObject, eventdata, handles)
% hObject    handle to edit_el (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit_el as text
%        str2double(get(hObject,'String')) returns contents of edit_el as a double% --- Executes during object creation, after setting all properties.
function edit_el_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit_el (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
endfunction edit_az_Callback(hObject, eventdata, handles)
% hObject    handle to edit_az (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit_az as text
%        str2double(get(hObject,'String')) returns contents of edit_az as a double% --- Executes during object creation, after setting all properties.
function edit_az_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit_az (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
end% --- Executes on button press in ConfigView.
function ConfigView_Callback(hObject, eventdata, handles)
% hObject    handle to ConfigView (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
el = str2double(handles.edit_el.String);
az = str2double(handles.edit_az.String);
view(az, el); % Hint: get(hObject,'Value') returns toggle state of ConfigView% --- Executes on button press in clear.
function clear_Callback(hObject, eventdata, handles)
% hObject    handle to clear (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)axes(handles.axes1); 
cla reset; 
grid on; 
handles.GridSwitch.String = '隐藏网格';
handles.GridSwitch.Value = 1;% --- Executes when selected object is changed in ChooseShading.
function ChooseShading_SelectionChangedFcn(hObject, eventdata, handles)
% hObject    handle to the selected object in ChooseShading 
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)switch eventdata.NewValue.Tag   % 按钮组中的控件标签case 'flat'shading flat; case 'interp'shading interp;case 'faceted'shading faceted;
end

 

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Ubuntu16.0.4 离线部署Openssh

    声 明1 : 本人才疏学浅,用郭德纲的话说“我是一个小学生”,如有错误,欢迎讨论,请勿谩骂^_^。 声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。缘起 客户现场部署软件,发现特么的给我的系统真实比我的裤兜还干…...

    2024/4/26 1:12:12
  2. 返回顶部

    点击返回顶部,简单易学 效果图:第一步:将返回按钮fixed到具体位置后隐藏第二步:当浏览器滚动条大于多少像素时显示按钮,小于多少时隐藏第三步:点击滚动代码:<!doctype html> <html><head><meta charset="utf-8"><title>返回顶部…...

    2024/4/13 0:27:52
  3. 最具中产气质的“网易考拉”,离“中国版Costco”还有多远?

    螳螂财经|木宇吴晓波有一次在参加《锵锵三人行》的时候说道,自己见过的大富豪中几乎没有一个是真正快乐的,在窦文涛追问之下,想了想之后又补充道,“哦,是有一个,丁磊。”丁老板的个人脾性,也极大地带入了网易这家公司的气质,在人口红利枯竭的今天,互联网企业们要么去海…...

    2024/5/6 0:07:17
  4. MFC控件使用说明书

    VC++控件工具箱:2 按钮(Button):用来接收用户的命令,应用程序在接收到用户命令后,通常需要进行一些后台工作。按钮可以响应单击或双击动作,在按钮接收到鼠标动作后,向其父窗口发送相应的控件通知,用户可以对这些控件通知进行消息映射,从而进行相应的处理。在一个对话…...

    2024/5/5 21:06:57
  5. JS(JQ)实现带动画的回到顶部效果

    实现功能:滚动到页面某一个高度的时候,回到顶部按钮出现。点击之后回到网页顶部,按钮隐藏。 代码如下,jQuery引用的是百度CDN的,因此整段代码复制下来后在浏览器运行即可。 <!DOCTYPE html> <html><head><meta charset="UTF-8"><tit…...

    2024/4/13 0:28:17
  6. C#中winform的pictureBox控件绘制图像的问题

    刚开始本来只是想简单的制作一个图形绘制程序来练习c#(最近刚入手),但是一上来就遇见一个很奇怪的问题,那就是在想在控件pictureBox中绘制图形并且显示出来,但是我发现我在pictureBox控件中绘制的图形有几个问题: 首先是不能在初始化的时候显示出来。然后是在后面窗…...

    2024/5/5 18:11:07
  7. ubuntu 12.04安装SSH

    ubuntu 12.04安装SSH在Ubuntu中安装SSH,其实很简单,下面就是安装方法:首先检查一下看机子是否安装了SSH,用如下命令#dpkg --list|grep ssh如果看到的有openssh-client 和openssh-server,就不再需要再安装了,一般来说openssh-client已经安装, 但是openssh-server不一定。如…...

    2024/5/6 1:12:13
  8. R_leaflet包_最易上手地图教程(一)(下)

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。作…...

    2024/5/5 19:55:12
  9. 微信小程序 --- 6行代码实现页面返回顶部

    效果预览: js部分:Page({data: {topNum: 0},returnTop: function () {this.setData({topNum: this.data.topNum = 0});} }) wxml部分:<scroll-view scroll-y scroll-with-animation=true scroll-top={{ topNum }}><view>1</view><view>1</view&g…...

    2024/4/17 23:29:52
  10. 界面控件-如何选择适合自己的界面控件

    界面控件的种类繁多,很多朋友都不知道如何去选择适合自己的界面控件。作为一个开发人员,界面控件应该是一个必备的开发工具,选择一个合适的界面控件,不仅可以节约开发时间,还可以让自己的软件更加强大更加美观。界面控件一般都是套包的形式。什么是套包? 套包就是把所有界…...

    2024/5/6 0:14:40
  11. mui 回到顶部

    最近开始做mui移动端的项目用到了列表,数据多的时候,回到顶部的快捷的功能是很有必要的,找了资料,最后整理如下:1.回到顶部元素的html代码,代码可以直接放在mui-content里面:<!--回到顶部--><a id="scrollToTop" class="backTop hide">…...

    2024/4/13 0:28:12
  12. ubuntu14.04安装ssh,允许root登录

    首先执行命令ps -e | grep ssh 。查看是否有ssh进程运行。确认没有ssh运行,且系统未安装openssh。然后在系统终端界面内输入apt-get update命令。(确保系统能够上网)进行系统的更新。待更新完成后。在终端输入apt-get install openssh-server。此处解释安装前提:系统能够上…...

    2024/4/13 0:28:02
  13. 一阶段项目 猫天下

    <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>宠喵club</title> <style> /** { margin:0px; padding:0px; }*/ #top1 { …...

    2024/5/5 22:26:51
  14. vue平滑滚动到顶部

    itoTop(){ let distance = document.documentElement.scrollTop || document.body.scrollTop; //获得当前高度 let step = distance/50; //每步的距离 (function jump(){ if(distance > 0){ distance-=step; // document.documentElement.scrollTop = distance; // document…...

    2024/5/5 20:21:23
  15. 2019年十大让人欲罢不能的消费潮流 | 财见年终观察

    2019年渐近尾声,在这一年中《财见》关注了衣食住行等各个行业的发展,伴随着互联网产业的发展以及主力消费人群年龄层的迁移,整个消费市场都发生着转变。可以让消费者打开钱包的不再仅仅是“物有所值”的产品,更多的是与“享受”、“健康”、“兴趣”相关的消费领域。下面就…...

    2024/5/6 3:59:10
  16. C#构建动画控件

    Head first C#学习笔记:以构建一个动画控件为例,讲解如何构建自己的控件。新建一个工程。并在resources下添加四张图片。 可以随便找四张图片,或者自己画都可以。只是熟悉构建控件的过程。这里要体现蜜蜂扇动翅膀的动画过程,因此四张连续的蜜蜂翅膀变化图。 想想:要实现一…...

    2024/5/6 3:30:48
  17. ubuntu的ssh安装包镜像地址

    http://us.archive.ubuntu.com/ubuntu/pool/main/o/openssh/...

    2024/5/5 21:43:14
  18. Web JS实现页面返回顶部

    之前写博客的时候加了个返回顶部的功能采用js的scrollTop属性实现了一下这个简单的功能当页面特别长的时候,用户想回到页面顶部,必须得滚动好几次滚动键才能回到顶部,如果在页面右下角有个“返回顶部”的按钮,用户点击一下,就可以回到顶部,对于用户来说,是一个比较好的体…...

    2024/4/19 14:52:23
  19. ubuntu安装telnet服务,telnet使用,ssh安装,使用

    ubuntu安装telnet服务: http://blog.csdn.net/xiongmaojiayou/article/details/75328171。输入sudo apt-get install xinetd telnetdsudo vi /etc/inetd.conf并加入以下一行,假如没有发现这个文件,自己新建立一个也是可以的哦,刚开始我也不知道,自己试了之后才知道 teln…...

    2024/4/16 10:26:26
  20. 老太5年来收养救助流浪猫狗数百只(图)

    昨日,何女士狭小的房间里养了数条狗。记者 王贵彬 摄通州区张家湾镇土桥欣村的居民何老太5年来收养救助流浪猫狗数百只,家里成了猫狗窝,儿子反而没处可住。近日,何老太儿子寻求社会帮助,希望找到解决办法。简易猫屋小区随处可见一堆砖块、加上几块木板,就成了猫屋。昨日下…...

    2024/4/13 0:29:08

最新文章

  1. JS本地储存基础(一)

    本地存储分类-localStorage 语法&#xff1a;存储数据&#xff1a;(本来没有就是储存&#xff0c;本来有就是修改) localStorage.setltem(key,value) 获取数据&#xff1a; localStorage.getltem(key) 删除数据&#xff1a; localStorage.removeltem(key) 注意&#xf…...

    2024/5/7 9:22:46
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/6 9:38:23
  3. 五一假期来临,各地景区云旅游、慢直播方案设计与平台搭建

    一、行业背景 经文化和旅游部数据中心测算&#xff0c;今年清明节假期3天全国国内旅游出游1.19亿人次&#xff0c;按可比口径较2019年同期增长11.5%&#xff1b;国内游客出游花费539.5亿元&#xff0c;较2019年同期增长12.7%。踏青赏花和户外徒步成为假期的热门出游主题。随着…...

    2024/4/30 7:54:16
  4. 【超简单】基于PaddleSpeech搭建个人语音听写服务

    一、【超简单】之基于PaddleSpeech搭建个人语音听写服务 1.需求分析 亲们,你们要写会议纪要嘛?亲们,你们要写会议纪要嘛?亲们,你们要写会议纪要嘛?当您面对成吨的会议录音,着急写会议纪要而不得不愚公移山、人海战术?听的头晕眼花,听的漏洞百出,听的怀疑人生,那么你…...

    2024/5/6 17:35:42
  5. vue3项目运行正常但vscode红色波浪线报错

    以下解决办法如不生效&#xff0c;可尝试 重启 vscode 一、Vetur插件检测问题 vetur 是一个 vscode 插件&#xff0c;用于为 .vue 单文件组件提供代码高亮以及语法支持。但 vue 以及 vetur 对于 ts 的支持&#xff0c;并不友好。 1、原因 如下图&#xff1a;鼠标放到红色波浪…...

    2024/5/5 8:53:05
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/7 5:50:09
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/4 23:54:56
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/6 9:21:00
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/4 23:55:16
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/4 23:55:06
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57