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 – Pushbutton, Edittext Trong Matlab

Lập Trình Gui Matlab – Pushbutton, Edittext Trong Matlab

Hướng Dẫn Sử Dụng công cụ Pushbutton, Edittext Trong Matlab

Như bạn đã biết thì khi bạn làm việc với giao diện GUI trong Matlab thì chắc hẳn bạn cần sử dụng đến 2 Tool này nhiều rồi đúng không! Trong bài viết này chúng ta cùng tìm hiểu chức năng cũng như cách sử dụng 2 Tool Pushbutton Edittext trong quá trình lập trình. Nếu bạn chưa biện các thao tác cơ bản để sử dụng giao diện thì bạn có thể xem lại bài viết Làm Quen Giao Diện GUI Trong Matlab để bạn không bị bỡ ngỡ. Oke chúng ta cùng bắt đầu học nào!

pushbutton-edittext-trong-matlab
pushbutton-edittext-trong-matlab

Vậy 2 Tool này dùng để làm gì? Bạn chỉ cần hiểu nôm na như sau

  • Pushbutton: Là một nút nhấn để ta có thể thao tác như là click chuột vào đó và sử lý một nhiệm vụ gì đó.
  • Edittext: Là 1 ô cho phép bạn nhập dữ liệu vào và lấy dữ liệu đó để thực thi 1 việc gì đó.

Để bạn không nhàn chán thì ta sẽ tiến hành làm một ví dụ nhỏ đó là lấy dữ liệu từ Edittext bằng Pushbutton trong Matlab sau đó thực hiện một phép toán và lấy kết quả đó đổ về Statictext. Theo thuật ngữ chuyên nghành thì người ta gọi quá trình này là trao đổi dữ liệu giữa các đối tượng trong lập trình GUI. Bạn hãy chú ý theo dõi để có thể hiểu được luồng dữ liệu sẽ được truyền như thế nào và sử dụng những câu lệnh nào để làm được việc đó. Cái đó là mẫu chốt của bài viết này muốn gửi đến bạn!

| Hướng dẫn Lập Trình Gui

Đầu tiên việc bạn cần làm là tiến hành tạo một GUI trống sau đó tạo ra các tool như hình dưới đó là 2 Static Text, 2 Edit Text và 1 Push Button.

lap-trinh-gui-matlab
lap-trinh-gui-matlab

Và kết quả bạn nhận được như hình dưới. Giao diện bạn có thể thiết kế như thế nào cũng được. Quan trọng là phần sử lý của chúng ta thôi. Bạn chú ý VuTienIT có dánh dấu Tag cho từng Tools (Định danh). Bạn cũng có thể đặt tên khác tùy bạn.

Trong Edit Text nếu bạn muốn mặc định khởi động nên sẽ không có dữ liệu thì bạn chỉ cần vào thuộc tính của nó chỉnh String thành rỗng (không có gì cả) là được.

Sau khi bạn thiết kế xong thì hãy lưu lại bằng tên nào đó ở đây là vidu3.fig. Thì khi lưu xong lập tức một file .m được sinh ra để ta lập trình file này có tên trùng với tên bạn lưu trước đó đó là vidu3.m.

trao-doi-du-lieu-trong-matlab
trao-doi-du-lieu-trong-matlab

Ok bây giờ ta tiến hành code. Để mở nhanh phần code nào đó của Tool đó thì bạn làm như hình dưới.

Ví dụ khi trương trình khởi động nên ta nhấn vào nút có tên là Tinh toan thì sẽ thực thi tính toán 2 số chẳng hạn.

Chọn Tool => View Call Backs => Callback
view-callbacks
view-callbacks

Lập tức nó sẽ chuyển bạn đến File .m và  đến đúng phần Tool mà bạn đã gọi nó để bạn Code chức năng cho nó.

Oke. Một câu hỏi đặt ra là làm sao để lấy dữ liệu người nhập vào từ bạn phím của 2 Tool Edit Text mà ta đã tạo bên trên? Thì có một câu lệnh hết sức đơn giản trong Matlab giúp chúng ta giải quyết được vấn đề này đó là:

a = get(handles.edit1, 'string');

b = get(handles.edit2, 'string');

Trong đó:

  • get: Là lấy giá trị
  • edit1, edit2: Đây là tên Tag của một Tools nào đó mà bạn đã đặt trước đó.
  • string: Là kiểu dữ liệu của ổ Edittext đó (Kiểu chuỗi)
  • handles: Được hiểu là cấu trúc điều khiển dữ liệu
  • a, b: Là biến được nhận giá trị của câu lệnh Get lấy giá trị ở ô Edittext về

Như vậy thì ta đã nhận được giá trị của 2 ô Edittext và gán giá trị đó vào 2 biến a và b rồi.  Nếu bạn nào tinh ý thắc mắc hỏi là 2 biến a,b là kiểu int (Kiểu số) bởi vì tính toán cộng trừ nhân chia mà. Sao lại nhận được kiểu string?

Thì trong Matlab cũng hỗ trợ bạn cho phép bạn chuyển đổi kiểu một cách rễ ràng đó là

a = str2num(a); 

b = str2num(b);

Trong đó:

  • str2num: Truyển đổi kiểu từ kiể string sang num.

Vì sao lại viết a = str2num(a) bởi vì biến a bên trên bạn đã nhận từ Get rồi nên ta sẽ lấy chính biến a này để chuyển đổi. Hoặc bạn có thể viết gắn ngon hơn đó là vừa GET xong thì chuyển đổi kiểu luôn.

a = str2num(get(handles.edit1, 'string'));

b = str2num(get(handles.edit2, 'string'));

Bây giờ bạn có thể thực hiện tính toán cộng, trừ, nhân, chia dễ dàng

c = a + b;
c = num2str(c);

num2str: Chuyển đổi kiểu số sang string.

Khi bạn đã có kết quả theo ý muốn rồi thì ta sẽ xuất dữ liệu lại sang edittext có tag là ketqua. Hay nói cách dễ hiểu hơn đó là hiện thị dữ liệu cho người dùng. Bạn sử dụng câu lệnh sau:

set(handles.ketqua, 'string', c);

Và cuối cùng là code của trương trình là đây:

huong-dan-lap-trinh-matlab-gui
huong-dan-lap-trinh-matlab-gui

Khi bạn gõ xong thì ta sẽ tiến hành chạy thử và nhập dữ liệu vào 2 ô Edittext và nhấn vào Nút Tinh Toan để xem kết quả.

cong-tru-nhan-chia-trong-matlab
cong-tru-nhan-chia-trong-matlab

Tổng Kết:

Như vậy thì bạn đã hiểu được quá trình trao đổi dữ liệu của các Tool với nhau như thế nào chưa nào? Mấu chốt bài viết này mong muốn là bạn hiểu được quy trình hoạt động của các Tool thôi. Còn Code như thế nào để tối ưu, khoa học thì chúng ta từ từ tìm hiểu. 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