Matlab và ứng dụng - Giao diện người dùng (GUI)

• Enable: cho phép nhấn (on/off)

• String: chuỗi hiển thị trên nút

5/5/2010 Huỳnh Văn Kha

4

• String: chuỗi hiển thị trên nút

• Tag: tên đối tượng nút phân biệt với các đối tượng

khác trong chương trình

• Value: giá trị của nút.

pdf5 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 3222 | Lượt tải: 4download
Tóm tắt nội dung Matlab và ứng dụng - Giao diện người dùng (GUI), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Giao diện người dùng (GUI)
Viết lệnh cho các thành phần GUI
Push Button (Nút nhấn)
5/5/2010Huỳnh Văn Kha
2
Hàm xử lý Callback của Push Button
• Khi nhấn chuột vào một nút nhấn, hàm sau được gọi
function pushbutton1_Callback(hObject, 
eventdata, handles)
... ... ...
5/5/2010
3
Huỳnh Văn Kha
Tên tag của button
VD: nhấn nút thì thay tên của nút (thuộc tính ‘String’ của nút)
function pushbutton1_Callback(hObject, 
eventdata, handles)
set(gcbo,'String',‘ten gi do');
Một số thuộc tính quan trọng của Button
• Enable: cho phép nhấn (on/off)
• String: chuỗi hiển thị trên nút
5/5/2010Huỳnh Văn Kha
4
• Tag: tên đối tượng nút phân biệt với các đối tượng 
khác trong chương trình
• Value: giá trị của nút.
(Nút bật tắt, Nút chọn và Ô check)
Toggle Button, Radio Button và Check Box 
5/5/2010Huỳnh Văn Kha
5
Thuộc tính của Toggle Button 
• Thuộc tính Value sẽ bằng thuộc tính Max nếu nút được nhấn 
hoặc được chọn, ngược lại sẽ bằng thuộc tính Min
function togglebutton1_Callback(hObject, 
eventdata, handles)
5/5/2010
6
Huỳnh Văn Kha
button_state = get(hObject,'Value');
if button_state == get(hObject,'Max')
% Toggle button ñược nhấn
...
elseif button_state == get(hObject,'Min')
% Toggle button không ñược nhấn
...
end
Toggle Button, Radio Button và Check Box
(Nút bật tắt, Nút chọn và Ô check)
• Mặc định Max=1, Min=0
• Cũng có thể thay đổi trạng thái cho các Toggle Button, Radio 
Button và Check Box bằng cách đặt lại các thuộc tính 
Value, Max, Min
5/5/2010Huỳnh Văn Kha
7
• Ví dụ:
set(handles.togglebutton1,'Value',
get(handles.togglebutton1,'Max')) đặt nút 
togglebutton1 sang trạng thái được nhấn
set(handles.radiobutton1,'Value',
get(handles.radiobutton1,'Min')) đặt nút 
radiobutton1 sang trạng thái bỏ chọn
Edit Text (Ô nhập văn bản)
5/5/2010Huỳnh Văn Kha
8
Edit Text (Ô nhập văn bản)
• Thuộc tính String chứa chuỗi mà người dùng nhập vào
function edittext1_Callback(hObject, 
eventdata, handles)
user_string = get(hObject,'String');
5/5/2010Huỳnh Văn Kha
9
% các lệnh xử lý tiếp theo
• Nếu thuộc tính Max, Min được đặt sao cho Max–
Min>1 thì người dùng có thể nhập nhiều hàng
• Callback được gọi khi đang thay đổi nội dung của Edit 
Text mà nhấp chuột ra bên ngoài (nhưng vẫn bên trong 
GUI), hoặc khi người dùng nhấn Enter (với Edit Text một 
hàng), Ctrl+Enter (với Edit Text nhiều hàng)
Nhận dữ liệu số từ Edit Text
• Thuộc tính String trả về một chuỗi. Muốn nhận dữ liệu số 
thì sử dụng hàm str2double. Nếu người dùng không nhập 
số thì str2double trả về NaN
function edittext1_Callback(hObject, 
5/5/2010Huỳnh Văn Kha
10
eventdata, handles)
user_entry = 
str2double(get(hObject,'string'));
if isnan(user_entry)
errordlg('You must enter a numeric 
value','Bad Input','modal')
return
end
% Proceed with callback...
Slider (thanh trượt)
5/5/2010Huỳnh Văn Kha
11
• Thuộc tính Value xác định trạng thái của Slider
• Thuộc tính Max và Min xác định cực đại và cực tiểu cho 
thuộc tính Value của Slider
function slider1_Callback(hObject, 
eventdata, handles)
slider_value = get(hObject,'Value');
% Proceed with callback...
List Box và Pop-up Menu
5/5/2010Huỳnh Văn Kha
12
List Box và Pop-up Menu
• Thuộc tính Value chứa chỉ số của mục được chọn. Chỉ số của 
mục đầu tiên là 1
• Thuộc tính String là mảng cell chứa danh sách các mục 
chọn của List Box và Pop-up Menu
5/5/2010Huỳnh Văn Kha
13
• Ví dụ dưới đây cho phép lấy giá trị của chuỗi được chọn trong 
List Box
function listbox1_Callback(hObject, 
eventdata, handles)
index_selected = get(hObject,'Value');
list = get(hObject,'String');
item_selected = list{index_selected};
% Convert from cell array to string
Gọi callback của List Box
• Callback của List Box được gọi sau sự kiện nhả chuột hoặc 
nhấn một số phím đặc biệt
• Khi các phím mũi tên thay đổi thuộc tính Value của List 
Box, callback Callback được gọi đồng thời đặt thuộc tính 
SelectionType của figure thành normal
• Phím Enter và Space không làm thay đổi thuộc tính Value
5/5/2010Huỳnh Văn Kha
14
của List Box, nhưng Callback vẫn được gọi, đồng thời đặt 
thuộc tính SelectionType của figure thành open
• Nếu người dùng nhấp đúp chuột thì Callback được gọi sau 
mỗi lấn nhấp. MatLab đặt thuộc tính SelectionType của 
figure thành normal ở lần thứ nhất và thành open ở lần thứ 
hai
• Do đó ta có thể biết được người dùng nhấp đúp chuột hay 
không dựa vào việc truy vấn thuộc tính SelectionType
của figure
Button Group
5/5/2010Huỳnh Văn Kha
15
Button Group
• Button Group chứa các thành phần GUI, đồng thời giúp ta 
quản lý việc lựa chọn của Radio Button và Toggle Button
• Nếu Button Group chứa Radio Button, Toggle Button hoặc cả 
hai thì Button Group chỉ cho phép một trong số chúng được 
chọn. Nếu một cái được chọn thì những cái khác sẽ được bỏ 
5/5/2010Huỳnh Văn Kha
16
chọn
• Callback SelectionChangeFcn của Button Group được 
gọi khi có sự thay đổi chọn
• Tham số đầu vào hObject trỏ tới Radio Button hoặc Toggle 
Button được chọn
• Các callback của các thành phần khác trong GUI có thể truy 
xuất tới đối tượng được chọn thông qua thuộc tính 
SelectedObject của Button Group
Axes (Hệ trục tọa độ)
5/5/2010Huỳnh Văn Kha
17
Axes (Hệ trục tọa độ)
• Hệ trục tọa độ dùng để vẽ đồ thị hoặc hiển thị hình ảnh
• Muốn vẽ đồ thị lên một hệ trục tọa độ, ta thêm handles tới hệ 
5/5/2010Huỳnh Văn Kha
18
trục tọa độ đó vào hàm muốn sử dụng
• Ví dụ sau vẽ đồ thị lên hệ trục axes1
[X,Y] = meshgrid(-3:.125:3);
Z = peaks(X,Y);
meshc(handles.axes1,X,Y,Z);
axis([-3 3 -3 3 -10 5]);
Menu
5/5/2010Huỳnh Văn Kha
19
Menu
• Để soạn thảo menu chọn biểu tượng
5/5/2010Huỳnh Văn Kha
20
Tạo 
menu 
Tên menu 
(thể hiện 
trên GUI)
mới
Tạo 
menu 
con
Thuộc tính 
tag (duy 
nhất cho 
mỗi menu)
Callback – sẽ thi hành khi 
menu được chọn
Hiển thị 
hàm 
callback 
của menu

File đính kèm:

  • pdfMatlab và ứng dụng - Giao diện người dùng (GUI).pdf
Tài liệu liên quan