You are here
Home > Lập Trình > Tự Học Matlab > Matlab Nâng Cao > Lập Trình GUI > Lập Trình Gui Matlab – Sử Dụng Listbox Và Checkbox Trong GUI Matlab

Lập Trình Gui Matlab – Sử Dụng Listbox Và Checkbox Trong GUI Matlab

listbox-va-checkbox-trong-gui-matlab

Sử Dụng Listbox Và Checkbox Trong GUI Matlab

Listbox là đối tượng trong Matlab để chọn lựa các phần tử con, Checkbox là đối tượng có giá trị 0 và 1. Trong bài viết này VuTienIT cùng bạn học cách sử dụng 2 đối tượng trong GUI Matlab đó là Listbox và Checkbox để áp dụng vào từng trường hợp cụ thể.

listbox-va-checkbox-trong-gui-matlab
listbox-va-checkbox-trong-gui-matlab

| Listbox Matlab

Listbox là gì? Thực chất nếu bạn học các sử dụng đối tượng Pop-up Menu ở trong bài viết số 4 rồi thì Listbox cũng vậy. Nó chỉ khác ở phần giao diện và cách chọn các phần tử bên trong của nó thôi.

Như hình phía dưới là bảng so sánh 2 đối tượng ListboxPop-up Menu. Thay vì click vào mũi tên trỏ xuống của đối tượng Pop-up Menu để chọn phần tử bên trong là sin, cos, tan, log. Thì Listbox sẽ hiện ra luôn cho bạn chọn. Như vậy bạn đã thấy sự khác biệt của 2 đối tượng này chưa nào? Còn về chức năng thì hoàn toàn là như nhau.

listbox-matlab-cac-su-dung-listbox-trong-gui-matlab
listbox-matlab-cac-su-dung-listbox-trong-gui-matlab

Để bạn hiểu hơn về cách lấy dữ liệu của các phần tử bên trong Listbox thì chúng ta cùng tiến hành làm một ví dụ dưới đây.

Như bạn có thể thấy thì phần listbox VuTienIT tạo ra 4 phần tử con là sin, cos, tan, log có Tag là listbox1. Tiếp đó là đối tượng axes có Tag là axes1. Khi ta chọn sin hay cos,… thì đồ thị sẽ hiện ra ở trong đối tượng axes. Vậy làm sao làm được điều này? Bạn hãy chú ý theo dõi để hiểu bản chất vấn đề nhé.

Tạo phần tử bên trong Listbox.

  1. Chuột phải đối tượng chọn Property Inspector
  2. Tìm đến thuộc tính String và click vào
  3. Điền từng phần tử vào bảng String. Các phần tử phân biệt với nhau bằng cách nhấn Enter khi viết xong một phần tử.
listbox-matlab
listbox-matlab

Và bạn được kết quả ở hình dưới.

huong-dan-su-dung-listbox-matlab
huong-dan-su-dung-listbox-matlab

Bạn hãy di chuột vào Listbox và clich chuột phải chọn View Callbacks và chọn Callback. Nó sẽ đẫn đến function listbox1_Callback của file .m mà bạn đã lưu trước đó. Bây giờ bạn làm như sau.

Như đã nói vấn đề ta cần giải quyết ở trên đó là khi click chọn sin thì vẽ hình sin chẳng han. Chính vì điều này ta phải lấy giá trị của phần tử trong listbox ra và lưu vào một biến luaChon chẳng hạn từ đó mới sử lý từng trường hợp 1 được.

luaChon = get(handles.listbox1, 'value');

Vì ta lấy giá trị của nó là value bởi vậy tương ứng từng phần tử trong listbox sin, cos, tan, log là giá trị nhận về sẽ là 1,2,3,4.

Tiếp đó là ta cần phải xác định xem vẽ đồ thị lên đối tượng Axes nào bằng câu lệnh sau:

axes(handles.axes1);

Oke khi nhận được giá trị rồi thì ta sử dụng cấu trúc switch case để sử lý từng trường hợp.

switch luaChon
   case 1
      t = -5:0.01:5;
      plot(t, sin(t));
   case 2
      t = -5:0.01:5;
      plot(t, cos(t));
   case 3
      t = -5:0.01:5;
      plot(t, tan(t));
   case 4
      t = -5:0.01:5;
      plot(t, log(t));
end

Chỉ cần vài dòng code trên là xong rồi đó. Bạn hãy chạy trương trình nên xem đã được chưa nhé.

ve-do-thi-matlab
ve-do-thi-matlab

Khá là đơn giản phải không. Vấn đề chính ta học đó là học cách tạo và sử dụng Listbox thôi. Khi có giá trị của đối tượng này rồi thì tùy vào từng bài toán cụ thể thì chúng ta sử lý.

| Checkbox Matlab

Checkbox là gì? Bạn chỉ cần hiểu theo một cách đơn giản đó là tắt và mở hay là 0 và 1. Khi check vào sẽ là 1 và khi bỏ check thì là 0.

Ta làm một ví dụ tiếp để bạn hiểu hơn. Như ví dụ trên bạn thấy thì khi vẽ đồ thị nên thì không biết bạn có để ý không đó là ta chưa vẽ dạng lưới vào đồ thị đúng không. Bây giờ ta sử dụng Checkbox để làm nhiệm vụ này. Đó là khi check vào thì sẽ Vẽ lưới và ngược lại khi bỏ check thì lưới ở đồ thị sẽ biến mất.

checkbox-matlab
checkbox-matlab

Ở Funtion của đối tượng Listbox bạn thêm dòng code dưới đây để lấy giá trị xem checkbox có được nhấn hay không?

batLuoi = get(handles.checkbox1, 'value');

Nó sẽ trả về 0 hoặc 1 tùy theo bạn check hay không. Ở trong mỗi case bạn thêm tiếp dòng lệnh bật lưới ở cuối case

if batLuoi == 1
    grid on;
else
    grid off;
end

Trong đó

  • grid on: Bật lưới
  • grid off: Tắt lưới

Và bạn được kết quả như sau

huong-dan-su-dung-checkbox-trong-gui-matlab
huong-dan-su-dung-checkbox-trong-gui-matlab

Dưới đây là toàn bộ code để xử lý bài tập trên

listbox-va-checkbox-trong-matlab
listbox-va-checkbox-trong-matlab

Tổng kết:

Trên đây VuTienIT cùng bạn học cách sử dụng Listbox cũng như checkbox trong lập trình giao diện GUI của phần mền Matlab. Hi vọng bài viết này giúp ích bạn trong từng bài toán cụ thể nào đó mà bạn đang cần giúp đỡ. Chúc bạn thành công!

0 0 bỏ phiếu
Đánh giá bài viết

Thủ Thuật Windows

Nếu như trong quá trình bạn tải file Active về mà bị thông báo là "tệp chứa virus" và bị xóa thì hãy làm theo các bước sau trước khi tải về nhé:

Bước 1: Tắt Windows Defender (Win 10), bạn hãy làm theo các bước này để tắt Defender tạm thời nhé, sau khi Active xong, bạn có thể bật lại:
1. Mở ứng dụng Settings.
2. Trên cửa sổ Settings, bạn tìm và click chọn Update & security.
3. Tiếp theo click chọn Windows Defender.
4. Chuyển trạng thái tùy chọn Real-time protection sang OFF.

Bước 2: Ngoài ra, Nếu trong quá trình tải về mà bạn dùng trình duyệt Chrome hay Cốc Cốc thì sau khi file tải xong không được bấm "Hủy" mà bạn nên bấm tổ hợp phím “Ctrl + J” để vào phần quản trị download, tìm đến file mà bạn tải rồi click vào ô “Khôi phục tệp…” nhé.

Có một số trường hợp file Active tải về mặc định bị xóa, nếu gặp trường hợp này bạn cần chắc chắn rằng Windows Defender hay phần mềm diệt virus trên máy đã được tắt. Sau đó bạn bấm “Ctrl +J“, tại link tải active mà bạn vừa tải về đã bị xóa, bạn hãy click vào đó để trình duyệt tải lại một lần nữa và lần này là sẽ thành công.

BQT: VuTienBlog

Subscribe
Thông báo
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả các ý kiến
Top
11
0
Bác có thắc mắc? Nhấn vào đây để bình luận!x
()
x