Lập Trình Gui Matlab – Visible Ẩn Hiện Các Đối Tượng Trong Gui Matlab

Visible Ẩn Hiện Các Đối Tượng Trong Gui Matlab Bằng Visible

Visible On Visible Off là một thuộc tính sẵn có trên các đối tượng trong lập trình Giao Diện GUI trên phần mền Matlab. Trong bài viếc trước chúng ta đã học đến thuộc tính Enable rồi. Cũng giống thuộc tính đó thì Visible cũng có 2 trạng thái là On (Hiện) và Off (Ẩn).

Visible on off trong gui matlab
Visible on off trong gui matlab

Visible và Enable có gì khác nhau?

Về bản chất thì cả 2 thuộc tính này nếu để off thì sẽ người dùng sẽ không để thao tác gì được trên thuộc tính đó cả. Có một điểm khác nhau rõ ràng nhất đó là. Thuộc tính Enable thì nó vẫn hiện thị trên giao diện nhưng mà nó mờ đối tượng đó chuột sẽ không thao tác được. Còn thuộc tính Visible thì nó sẽ mất hẳn luôn không hiển thị. Bao giờ bạn viết code bật lại đối tượng đó thì no mới hiện nên để người dùng thao tác được.

Visible sử dụng như thế nào?

Mặc định trên tất cả các đối tượng thì thuộc tính này sẽ được bật (On). Bạn có thể Off nó thông qua giao diện hoặc viết code. Ứng dụng của nó và cách sử dụng như thế nào thì tôi và bạn cùng đi qua một ví dụ dưới đây thì bạn sẽ hiểu  nó dùng và hoạt động thế nào?

Giả sử dụng tôi có một giao diện dưới đây. Về các tạo như thế nào để tạo giao diện thì tôi xin không được nhắc lại. Bởi vì bạn học đến phần này thì chắc hẳn nó không quá khó phải không nào?

Visible on off gui matlab
Visible on off gui matlab

Khi chạy trương trình nên thì bạn sẽ được giao diện như thế này

Visible an hien cac doi tuong trong gui matlab
Visible an hien cac doi tuong trong gui matlab

Bạn có thấy không? Giao diện chưa chạy khác và giao diện chạy nên đã khác? Nhóm Tham So và đối tượng Exes1 đã bị biến mất.

Nhiệm vụ của ta trong ví dụ này sẽ như sau: Khi trương trình chạy nên mặc định Nhóm Tham So và Exes1 sẽ biến mất (Ẩn đi). Khi nào nhấn vào Radio Button thì sẽ được hiện nên cho phép bạn thay đổi các thông số đó. Và khi nhấn vào Ve Do Thi thì đồ thị sẽ được hiện nên.

Vậy làm sao ta sử lý được ví dụ này? Chúng ta cùng bắt tay vào làm nhé.

Về giao diện thì bạn hãy tạo ra các đối tượng đầy đủ hết. Đối với các đối tượng bạn muốn ẩn đi thì ta có 2 cách đó là:

Nếu muốn làm trên giao diện:

Bạn nhấn chuột phải vào đối tượng đó chọn Property Inspector tìm đến dòng Visible chọn Off

visible gui matlab
visible gui matlab

Nếu muốn làm trên file .m

Ở ví dụ này thì các đối tượng này sẽ được ẩn đi khi trương trình được chạy nên thì có nghĩa là ta cần phải viết trên function OpeningFcn. Như tôi đã nói ở các bài viết trước thì hàm này mặc định sẽ có trong file .m và nó sẽ được gọi đầu tiên khi trương trình được chạy nên. Cho nên ta sẽ viết các đối tượng cần ẩn đi vào hàm này

set(handles.hieuchinh,'value',0);
set(handles.axes1,'visible','off');
set(handles.pn1,'visible','off');
set(handles.v0,'visible','off');
set(handles.tf,'visible','off');
set(handles.h0,'visible','off');
set(handles.hesonay,'visible','off');
set(handles.text1,'visible','off');
set(handles.text2,'visible','off');
set(handles.text3,'visible','off');
set(handles.text4,'visible','off');

Trong đó:

  • handles.axes1 là truy cập vào đối tượng này. (Các đoạn code khác cũng tượng tự)
  • visible là thuộc tính
  • off là ẩn

Bây giờ ta sẽ sử lý đến các đối tượng khác

Đối tượng Radio Button có string Hieu Chinh

value = get(hObject,'value');
if value ==1
   set(handles.pn1,'visible','on');
   set(handles.v0,'visible','on');
   set(handles.tf,'visible','on');
   set(handles.h0,'visible','on');
   set(handles.hesonay,'visible','on');
   set(handles.text1,'visible','on');
   set(handles.text2,'visible','on');
   set(handles.text3,'visible','on');
   set(handles.text4,'visible','on');
else
   set(handles.pn1,'visible','off');
   set(handles.v0,'visible','off');
   set(handles.tf,'visible','off');
   set(handles.h0,'visible','off');
   set(handles.text1,'visible','off');
   set(handles.text2,'visible','off');
   set(handles.text3,'visible','off');
   set(handles.text4,'visible','off');
end

Trong đó:

  • hObject truy cập vào đối tượng Radio Button Hieu Chinh. Nó tượng đương với câu lệnh handles.hieuchinh. Bởi vì là radio nên nó sẽ có kết quả 1 (Click vào) và 0 (Bỏ click) ta sẽ gán kết quả về biến value
  • Nếu kết quả tra về 1 thì các đối tượng ta đã ẩn sẽ bật nên thành on. Ngược lại nếu kết quả là 0 thì các đối tượng đó sẽ ẩn.

Đối tượng Push Button có string Ve Do Thi

value = get(handles.hieuchinh,'value');

Trong đó: Lấy giá trị của đối tượng có Tag hieuchinh có string là Hieu Chinh

if value ==1
   h0 = get(handles.h0,'string');
   h0 = str2num(h0);
   v0 = get(handles.v0,'string');
   v0 = str2num(v0);
   hesonay = get(handles.hesonay,'string');
   chiso = get(handles.hesonay,'value');
   damping = hesonay{chiso};
   damping = str2num(damping);
   tf = get(handles.tf,'string');
   tf = str2num(tf);
   v = v0;
else
   h0 = 10;
   v = 0;
   t0 = 0;
   dt = 1/1000;
   tf = sqrt(h0)*2.5;
   g=-9.81;
   damping = 0.4;
end

Đoạn code sử lý vẽ đồ thị

t0 = 0;
dt = 1/1000;
g=-9.81;

times = dt:dt:tf;
heights = zeros(size(times));

for idx = 1:length(times)
   newh = h0 + (v+g*dt/2)*dt;
   v = v + g*dt;
   
   if newh < 0
      newh = 0;
      v = -v*sqrt(damping);
   end
   heights(idx) = newh;
   h0 = newh;
end

plot(times,heights);
xlabel('Time [Secs]')
ylabel('Height [meters]')

Đây là bài toán vẽ đồ thị về đường đi của một quả bóng chẳn hạn khi ta ném từ trên xuống thì đường đi sẽ như thế nào. Cho nên bài toán sẽ như vậy. Tôi không thể nào giải thích được hết tất cả các đoạn code ở trên được cho bạn được bời vì quá dài. Chính vì điều này tôi sẽ để link tải code của bài toán này cho bạn tham khảo.

Mấu chốt của bài học hôm nay đó la ta học cách sử dụng thuộc tính Visible thông qua dòng lệnh dưới đây

set(handles.doiTuongCanAnHien, 'visible', 'on');

Tùy bài toán cụ thể thì bạn sẽ áp dụng nó như thế nào thôi.

Download Code

Tổng Kết:

Trên đây chúng ta đã học các sử dụng Visible cho các đối tượng của ta cũng như biết được nó áp dụng dùng để làm gì. Nếu bạn có thắc mắc gì thì có thể đặt câu hỏi phía dưới VuTienIT xin được trả lời. Chúc bạn thành công!

Huong dan download file tai VuTienIT.Com
Hướng dẫn tải File tại VuTienIT.Com
VuTienIT

Đam mê máy tính, công nghệ và Lập Trình CMS WordPress.

Xem thêm bài viết Subscribe

Hãy trở thành người đầu tiên bình luận!

Thông báo
avatar
250
wpDiscuz

Lập Trình Gui Matlab – Visible Ẩn Hiện Các Đối Tượng Trong Gui Matlab

Tác giả: Thủ Thuật Windows Thời gian đọc: 6 min