[問題] GUI問題已回收
EX1:在文字方塊裡輸入數字後(必須檢查是否在0~255之間),按下Enter來接收時卷軸
就會被設定成文字方塊裡所輸入數字,同時靜態文字方塊裡的顏色也會跟著改變。
%程式碼:
close all
figure('Position',[80 80 230 160],'Menubar','none');
h_sld=uicontrol('Style','slider','Position',[30 20 100 20],...
'Max',255,'Min',0,'Value',128,'Sliderstep',[1/255,10/255]);
h_edit=uicontrol('Style','edit','Position',[150 20 50 20]);
h_txt=uicontrol('Style','text','Position',[30 60 170 80],...
'BackgroundColor',[128 128 128]/255);
set(h_edit,'Callback','sld_action');
-------------------------------------------------------------------
%sld_action.m
val=str2double(get(h_edit,'string'));
if val >=0 & val <= 255
set(h_sld,'Value',val));
set(h_txt,'BackgroundColor',[val val val]/255);
end
問題:為何文字方塊裡的值無法反映在slider呢?
EX2:所繪線條的顏色可依照選擇按鈕裡所指定的顏色來繪圖。
%程式碼:
close all
figure('Position',[80 80 280 220],'Menubar','none');
axes('Position',[0.15 0.2 0.8 0.7]); % 建立繪圖區
axis([0 1 0 1]); % 設定繪圖範圍
h(1)=uicontrol('String','Red','Position',[40 5 60 20]);
h(2)=uicontrol('String','Green','Position',[110 5 60 20]);
h(3)=uicontrol('String','Blue','Position',[180 5 60 20]);
set(gcf,'WindowButtonDownFcn','draw_lines(''down'')');
set(gcf,'WindowButtonMotionFcn','draw_lines(''motion'')');
set(gcf,'WindowButtonUpFcn','draw_lines(''up'')');
cmd1='set(gca,''Color'',[1,0,0])';
cmd2='set(gca,''Color'',[0,1,0])';
cmd3='set(gca,''Color'',[0,0,1])';
set(h(1),'Callback',cmd1);
set(h(2),'Callback',cmd2);
set(h(3),'Callback',cmd3);
-----------------------------------------------------------------------
function draw_lines(str)
global x0 y0 flag; % 定義x0、y0與flag為全域變數
switch str
case 'down'
current_pt=get(gca,'CurrentPoint'); % 取得滑鼠按下的位置
x0=current_pt(1,1); % 取得滑鼠所在位置的x座標
y0=current_pt(1,2); % 取得滑鼠所在位置的y座標
flag=1; % 設定flag=1,代表滑鼠已被按下
case 'motion'
if flag==1 % 如果滑鼠被按下,則執行下列的動作
current_pt=get(gca,'CurrentPoint'); % 取得滑鼠目前的位置
x1=current_pt(1,1); % 取得滑鼠所在位置的x座標
y1=current_pt(1,2); % 取得滑鼠所在位置的y座標
line([x0,x1],[y0,y1]); % 將目前的點與上一個點連接起來
x0=x1; %更新x0的值
y0=y1; %更新y0的值
end
case 'up'
flag=0; % 設定flag=0,代表滑鼠以被放開
end
問題:上述的按鈕被寫成控制gca的顏色,該怎樣修改才能取得按鈕的值,並且
改變線段顏色呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.114.106.33
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章