⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guiexample.m

📁 电子社08年的《精通MATLABG UI设计》一书的所有代码
💻 M
字号:
function guiexample

set(0,'Units','pixels');
Ssize = get(0,'ScreenSize'); % 获得屏幕的大小 

H.gui = dialog('WindowStyle','normal',... % 设置对话框
               'Resize','on',...         
               'Name','GUI_Example',...  
               'Units','pixels',...
               'Position',[(Ssize(3)-500)/2 (Ssize(4)-400)/2 500 400]);
H.axes = axes('Parent',H.gui,...        % 设置坐标轴
                'Units','pixels',...
               'Position',[30 30 380 340]);

H.Button = uicontrol('Style','pushbutton',... % 目标按钮
                      'Parent',H.gui,...
                      'Units','pixels',...
                      'Position',[100 100 100 60]);
                  
DefPos = get(H.Button ,'Position'); % 目标按钮的默认位置
set(H.Button,'UserData',DefPos)  % 保存目标按钮的默认位置
set(H.Button,'String',strcat(num2str(DefPos(1)),',',num2str(DefPos(2))))  % 显示目标按钮的位置坐标

H.Hslider = uicontrol('Style','slider',... % 水平slider
                      'Parent',H.gui,...
                      'Units','pixels',...
                      'Position',[30 375 360 20],...
                      'Min',30,'Max',370,...
                      'Value',DefPos(1),...
                      'Callback',{@local_Hslider,H});

H.Vslider = uicontrol('Style','slider',... % 竖直slider
                      'Parent',H.gui,...
                      'Units','pixels',...
                      'Position',[415 30 20 330],...
                      'Min',30,'Max',330,...
                      'Value',DefPos(2),...
                      'Callback',{@local_Vslider,H});
H.Default = uicontrol('Style','pushbutton',... % 默认按钮,恢复目标按钮的位置
                      'Parent',H.gui,...
                      'Units','pixels',...
                      'Position',[440 200 60 30],...
                      'String','默认',...
                      'Callback',{@local_Default,H});
Hm = uimenu('Parent',H.gui,'Label','File'); %菜单
uimenu('Parent',Hm,...                       
       'Label','Default',...
       'Callback',{@local_Default,H});  % 调用默认按钮
uimenu('Parent',Hm,... 
       'Label','Close',...
       'Callback','close(gcbf)'); %关闭图形
function local_Hslider(cbo,eventdata,h)  % 改变目标按钮的水平位置
SliderValue = get(cbo,'Value');
pos = get(h.Button,'Position');
set(h.Button,'Position',[SliderValue pos(2:4)])
set(h.Button,'String',strcat(num2str(SliderValue),',',num2str(pos(2))))   % 显示目标按钮的位置坐标

%--------------------------------------------------------
function local_Vslider(cbo,eventdata,h)  % 改变目标按钮的竖直位置
SliderValue = get(cbo,'Value');
pos = get(h.Button,'Position');
set(h.Button,'Position',[pos(1) SliderValue pos(3:4)])
set(h.Button,'String',strcat(num2str(pos(1)),',',num2str(SliderValue)))   % 显示目标按钮的位置坐标

%--------------------------------------------------------
function local_Default(cbo,eventdata,h) % 恢复目标按钮的默认位置

defpos = get(h.Button,'UserData');
set(h.Button,'Position',defpos)
set(h.Hslider,'Value',defpos(1))
set(h.Vslider,'Value',defpos(2))
set(h.Button,'String',strcat(num2str(defpos(1)),',',num2str(defpos(2))))   % 显示目标按钮的位置坐标

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -