Lập trình giao diện trong Matlab

H
Bình luận: 14Lượt xem: 11,887

haui

Tài xế O-H
Bài đầu tiên mình sẽ giới thiệu các bạn giao diện GUI.

1. Mở phần mềm Matlab, gõ lệnh sau vào cửa sổ Command
>> guide
hoặc Menu File\New\GUI

Trong cửa sổ GUIDE Quick Start có nhiều lựa chọn theo một trong các mục sau:

- Create New GUI: Tạo một hộp thoại GUI mới theo một trong các loại sau

* Blank GUI (Default): Hộp thoại GUI trống không có một điều khiển uicontrol nào cả.
* GUI with Uicontrols: Hộp thoại GUI với một vài uicontrol như button, … Chương trình có thể chạy ngay.
* GUI with Axes and Menu: Hộp thoại GUI với một uicontrol axes và button, các menu để hiển thị đồ thị.
* Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No.

- Open Existing GUI: mở một figure-file có sẵn.

-> Các bạn chọn Blank GUI

2. Cửa sổ GUI hiện ra



Giao diện rất giống với các chương trình lập trình giao diện như Visual Basic, Visual C++, … Các bạn di chuột qua các biểu tượng ở bên trái sẽ thấy tên của các điều khiển. Hoặc tùy chỉnh trong menu File\Prefrences: Chọn GUIDE, đánh dấu chọn Show Names... ->OK. Sẽ thấy tên các điều khiển:


Chức năng của các điều khiển như sau:

* Push Button: giống như nút Command Button trong VB. Là các nút bấm như nút OK, Cancel mà ta vẫn bấm.
* Slider : Thanh trượt có một con trượt chạy trên đó. (hay dùng để làm tiến độ, tiến trình, hoặc phần trăm...)
* Radio Button : Nút nhỏ hình tròn để chọn lựa. (Dùng để chọn hoặc cái này, hoặc cái kia)
* Check Box: Lựa chọn hình vuông. (Khác Radio Button ở chỗ có thể chọn hoặc ko chọn nhiều cái, độc lập)
* Edit Text: Hộp nhập dữ liệu. (Để nhập các thông số đầu vào của bài toán)
* Static Text: Giống như nhãn trong VB. (Dùng để gán nhãn, chú thích cho Edit Text, hoặc đối tượng khác...)
* Pop-up Menu: Nút công cụ có dạng menu. (khi ấn vào nút hiện ra nhiều lựa chọn)
* List Box: Hộp nhập dữ liệu theo danh sách. (Khác Edit Text ở chỗ là phải chọn 1 mục trong danh sách có sẵn)
* Toggle Button: Nút lệnh có tính chất on/off (nhấn nó chìm xuống, nhấn cái nữa lại nổi lên)
* Table: Bảng dữ liệu (Cái này mới bổ sung từ Matlab2007 cho bằng bạn bằng bè)
* Axes: Hệ trục tọa độ. (Dùng đẻ thể hiện các đối tượng đồ họa)
* Panel: Khung chứa các điều khiển
* Button Group: Tạo ra một nhóm các nút
* ActiveX Control: Điều khiển ActiveX (sử dụng các đối tượng trong thư viện của Win)


Các bài sau sẽ giới thiệu và hướng dẫn các bạn sử dụng từng điều khiển một.

Dưới đây là một trong những đề tài mình đã làm. Các bạn xem sẽ thấy giao diện lập trình bằng Matlab ko thua kém gì so với Visual Basic, Visual C++


Cảm ơn nhiều!
 

haui

Tài xế O-H
Hướng dẫn sử dụng Push button, Edit Text và Static Text qua ví dụ: Giải phương trình bậc 2

Chạy Matlab
Vào Menu File\New\GUI sẽ thấy hiện ra hộp thoại sau:

Chọn Blank GUI -> OK
Trong hộp thoại hiện ra (figure), kéo thả các điều khiển Push button, Edit TextStatic Text vào figure được hình như sau:

Mỗi điều khiển đều có nhiều thuộc tính (có thể xem bằng cách click đúp vào điều khiển đó). Mỗi điều khiển có 2 thuộc tính quan trọng nhất là: Tag, String. Không giống như VB danh sách thuộc tính hiển thị ngay khi đánh dấu chấm sau tên đối tượng, với ML chúng ta phải học thuộc tên các thuộc tính của các điều khiển. Tag là thuộc tính chỉ địa chỉ của điều khiển (dùng để gọi khi cần). String là thuộc tính chứa nội dung (sẽ được hiển thị ra ngoài) của điều khiển. Sau đây ta đặt các thuộc tính này:

- Push button 1: (click đúp vào điều khiển Push button thứ nhất)
+ Tag : start
+ String : Bat dau

- Push button 2:
+ Tag : close
+ String : Close
- Edit Text 1:
+ Tag : heso_a
+ String : (xóa trắng)
- Edit Text 2:
+ Tag : heso_b
+ String : (xóa trắng)
- Edit Text 3:
+ Tag : heso_c
+ String : (xóa trắng)
- Edit Text 4:
+ Tag : nghiem_x1
+ String : (xóa trắng)
- Edit Text 5:
+ Tag : nghiem_x1
+ String : (xóa trắng)

- Static Text 1: (Đối với các Static Text thuộc tính Tag không quan trọng, trừ các trường hợp đặc biệt)
+ String : Giai phương trinh bac 2: ax2 + bx + c = 0
- Static Text 2:
+ String : a =
- Static Text 3:
+ String : b =
- Static Text 4:
+ String : c =
- Static Text 5:
+ String : Ket luan
- Static Text 6:
+ Tag : kl
+ String : (xóa trắng)
- Static Text 7:
+ Tag : nghiem_x1
+ String : x1 =
- Static Text 8:
+ Tag : nghiem_x2
+ String : x2 =
- figure: (click đúp vào nền của figure):
+ Tag : fig1
+ Name : Giai phương trinh bac 2
Sau khi đặt các thuộc tính, căn chỉnh (sử dụng chuột hoặc công cụ Align Objecs) được figure có dạng như sau:


Lưu lại figure (Menu File\Save) dưới tên GPTB2.fig
Sau đó ML tự sinh file GPTB2.m; trong file này tìm hàm start_callback (có thể phải chuột vào nút Bat dau chọn View callbacks\callback) và đánh vào các dòng lệnh sau:



Hàm set là hàm đặt thuộc tính cho điều khiển
Hàm get là hàm lấy giá trị thuộc tính của điều khiển
Hàm str2double là hàm biến chuỗi thành số

Cuối cùng ghi lại file m (GPTB2.m) và chạy chương trình (nhấn F5 hoặc nút run hình tam giác màu xanh). Nhập vào các hệ số a, b, c và click nút Bat dau để xem thành quả nào.

Chúc các bạn thành công!
 

haui

Tài xế O-H
Một ví dụ về lập trình giao diện trong Matlab.

Chương trình Femsoft, khả năng cũng không thua kém VisualBasic:




 

kbitgi

Tài xế O-H
mình đang lập phần mềm kiểm tra đồ án kctt ô tô bằng matlab.nên ai có tài liệu gì liên quan thì gửi cho mình nhé...thank you very much! :9:
 

shinichi1807

Tài xế O-H
anh cho em hỏi với. em tìm đến lệnh function start_Callback(hObject, eventdata, handles)
thì sau lệnh này là em gõ code trên của anh hay là xóa nó đi. em làm rồi mà không thấy chạy???????????
 
T

thanh_bin1990

Khách
các chương trình matlap này e ngồi mò cả tháng cũng chỉ làm dc mấy cái cơ bản , hjxhjx, mấy cái chương trình lập trình khó kinh khủng :(
 

thandieuvh

Tài xế O-H
Bài này Copy từ diễn đàn cơ điện tử sang mà không ghi rõ nguồn gốc :32:

http://diendancodientu.com/forum/showthread.php?45-Lập-trình-giao-diện-trong-Matlab

Hướng dẫn sử dụng Push button, Edit Text và Static Text qua ví dụ: Giải phương trình bậc 2

Chạy Matlab
Vào Menu File\New\GUI sẽ thấy hiện ra hộp thoại sau:

Chọn Blank GUI -> OK
Trong hộp thoại hiện ra (figure), kéo thả các điều khiển Push button, Edit TextStatic Text vào figure được hình như sau:

Mỗi điều khiển đều có nhiều thuộc tính (có thể xem bằng cách click đúp vào điều khiển đó). Mỗi điều khiển có 2 thuộc tính quan trọng nhất là: Tag, String. Không giống như VB danh sách thuộc tính hiển thị ngay khi đánh dấu chấm sau tên đối tượng, với ML chúng ta phải học thuộc tên các thuộc tính của các điều khiển. Tag là thuộc tính chỉ địa chỉ của điều khiển (dùng để gọi khi cần). String là thuộc tính chứa nội dung (sẽ được hiển thị ra ngoài) của điều khiển. Sau đây ta đặt các thuộc tính này:

- Push button 1: (click đúp vào điều khiển Push button thứ nhất)
+ Tag : start
+ String : Bat dau

- Push button 2:
+ Tag : close
+ String : Close
- Edit Text 1:
+ Tag : heso_a
+ String : (xóa trắng)
- Edit Text 2:
+ Tag : heso_b
+ String : (xóa trắng)
- Edit Text 3:
+ Tag : heso_c
+ String : (xóa trắng)
- Edit Text 4:
+ Tag : nghiem_x1
+ String : (xóa trắng)
- Edit Text 5:
+ Tag : nghiem_x1
+ String : (xóa trắng)

- Static Text 1: (Đối với các Static Text thuộc tính Tag không quan trọng, trừ các trường hợp đặc biệt)
+ String : Giai phương trinh bac 2: ax2 + bx + c = 0
- Static Text 2:
+ String : a =
- Static Text 3:
+ String : b =
- Static Text 4:
+ String : c =
- Static Text 5:
+ String : Ket luan
- Static Text 6:
+ Tag : kl
+ String : (xóa trắng)
- Static Text 7:
+ Tag : nghiem_x1
+ String : x1 =
- Static Text 8:
+ Tag : nghiem_x2
+ String : x2 =
- figure: (click đúp vào nền của figure):
+ Tag : fig1
+ Name : Giai phương trinh bac 2
Sau khi đặt các thuộc tính, căn chỉnh (sử dụng chuột hoặc công cụ Align Objecs) được figure có dạng như sau:


Lưu lại figure (Menu File\Save) dưới tên GPTB2.fig
Sau đó ML tự sinh file GPTB2.m; trong file này tìm hàm start_callback (có thể phải chuột vào nút Bat dau chọn View callbacks\callback) và đánh vào các dòng lệnh sau:



Hàm set là hàm đặt thuộc tính cho điều khiển
Hàm get là hàm lấy giá trị thuộc tính của điều khiển
Hàm str2double là hàm biến chuỗi thành số

Cuối cùng ghi lại file m (GPTB2.m) và chạy chương trình (nhấn F5 hoặc nút run hình tam giác màu xanh). Nhập vào các hệ số a, b, c và click nút Bat dau để xem thành quả nào.

Chúc các bạn thành công!


---------- Post added at 03:05 PM ---------- Previous post was at 03:01 PM ----------

Bài nay nguyên gốc bên đienancodientu Copy sang day
http://diendancodientu.com/forum/showthread.php?45-Lập-trình-giao-diện-trong-Matlab

Bài đầu tiên mình sẽ giới thiệu các bạn giao diện GUI.

1. Mở phần mềm Matlab, gõ lệnh sau vào cửa sổ Command
>> guide
hoặc Menu File\New\GUI

Trong cửa sổ GUIDE Quick Start có nhiều lựa chọn theo một trong các mục sau:

- Create New GUI: Tạo một hộp thoại GUI mới theo một trong các loại sau

* Blank GUI (Default): Hộp thoại GUI trống không có một điều khiển uicontrol nào cả.
* GUI with Uicontrols: Hộp thoại GUI với một vài uicontrol như button, … Chương trình có thể chạy ngay.
* GUI with Axes and Menu: Hộp thoại GUI với một uicontrol axes và button, các menu để hiển thị đồ thị.
* Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No.

- Open Existing GUI: mở một figure-file có sẵn.

-> Các bạn chọn Blank GUI

2. Cửa sổ GUI hiện ra



Giao diện rất giống với các chương trình lập trình giao diện như Visual Basic, Visual C++, … Các bạn di chuột qua các biểu tượng ở bên trái sẽ thấy tên của các điều khiển. Hoặc tùy chỉnh trong menu File\Prefrences: Chọn GUIDE, đánh dấu chọn Show Names... ->OK. Sẽ thấy tên các điều khiển:


Chức năng của các điều khiển như sau:

* Push Button: giống như nút Command Button trong VB. Là các nút bấm như nút OK, Cancel mà ta vẫn bấm.
* Slider : Thanh trượt có một con trượt chạy trên đó. (hay dùng để làm tiến độ, tiến trình, hoặc phần trăm...)
* Radio Button : Nút nhỏ hình tròn để chọn lựa. (Dùng để chọn hoặc cái này, hoặc cái kia)
* Check Box: Lựa chọn hình vuông. (Khác Radio Button ở chỗ có thể chọn hoặc ko chọn nhiều cái, độc lập)
* Edit Text: Hộp nhập dữ liệu. (Để nhập các thông số đầu vào của bài toán)
* Static Text: Giống như nhãn trong VB. (Dùng để gán nhãn, chú thích cho Edit Text, hoặc đối tượng khác...)
* Pop-up Menu: Nút công cụ có dạng menu. (khi ấn vào nút hiện ra nhiều lựa chọn)
* List Box: Hộp nhập dữ liệu theo danh sách. (Khác Edit Text ở chỗ là phải chọn 1 mục trong danh sách có sẵn)
* Toggle Button: Nút lệnh có tính chất on/off (nhấn nó chìm xuống, nhấn cái nữa lại nổi lên)
* Table: Bảng dữ liệu (Cái này mới bổ sung từ Matlab2007 cho bằng bạn bằng bè)
* Axes: Hệ trục tọa độ. (Dùng đẻ thể hiện các đối tượng đồ họa)
* Panel: Khung chứa các điều khiển
* Button Group: Tạo ra một nhóm các nút
* ActiveX Control: Điều khiển ActiveX (sử dụng các đối tượng trong thư viện của Win)


Các bài sau sẽ giới thiệu và hướng dẫn các bạn sử dụng từng điều khiển một.

Dưới đây là một trong những đề tài mình đã làm. Các bạn xem sẽ thấy giao diện lập trình bằng Matlab ko thua kém gì so với Visual Basic, Visual C++


Cảm ơn nhiều!
 

eyes146

Tài xế O-H
cho em hỏi thêm chút, khi mình muốn xóa tất cả những thông số vừa nhập vào các edit text thì phải làm sao? Mong được hồi đáp sớm
 

polyathao

Tài xế O-H
Chào bác haui, bác làm giao diện matlab pro quá! Em đang tìm hiểu giao diện matlab để làm cái đồ án, bác có thể cho em tham khảo cái femsorf của bác được không ạ? em đang cần gấp. Em có thể đóng góp chút phí cũng được, nhưng báo trước bác, em là học viên diện khó khăn đó :)). Có gì bác mail cho em vào địa chỉ ndthao80@gmail.com. Thanks bác nhiều.
 

quocdung13

Tài xế O-H
vd, mình có 1 nút là clear, giả sử click vào nút này thì toàn bộ những giá trị ở các ô Edit đều được xóa hết, thì làm thế nào vậy mọi người!
hay vd như nhấn nút Close thì tắt chương trình luôn, code như thế nào?
 

eyes146

Tài xế O-H
lập trình nốt close và nôt clear

vd, mình có 1 nút là clear, giả sử click vào nút này thì toàn bộ những giá trị ở các ô Edit đều được xóa hết, thì làm thế nào vậy mọi người!
hay vd như nhấn nút Close thì tắt chương trình luôn, code như thế nào?
Trả lời:
1. Bạn tạo một pushbutton sau đó phải chuột-> vew-> callback -> điện đoạn code tương tự như ở dưới để xóa hết các ô Edit. có thể hiểu là điền một khoảng trắng vào Edit
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(handles.edit1,'string','');
set(handles.edit2,'string','');
set(handles.edit3,'string','');
set(handles.edit4,'string','');
set(handles.edit5,'string','');

2. muốn đóng thì bạn tạo một pushbutton sau đó vào callback gõ lệnh sau
close();
thế là xong chuc thành công
 

Bạn hãy đăng nhập hoặc đăng ký để phản hồi tại đây nhé.

Bên trên