Sharing here

***Hãy chia sẻ để được chia sẻ***FORUM CUNG CẤP TÀI LIỆU TIN HỌC VIỄN THÔNG***Hãy chia sẻ để được chia sẻ***

Trợ giúp|Tìm kiếm|Liên hệ: Admin|
  • Đăng ký
  • Đăng nhập
  • Thành viên tích cực

    You are not connected. Please login or register

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

    Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

    1Lập trình giao diện trong Matlab Empty Lập trình giao diện trong Matlab Mon Nov 07, 2011 6:35 pm

    Admin

    Admin
    Admin
    Admin

    Mục đích: Tạo một chương trình thân thiện với người dùng , giúp thể hiện trực quan các kết quả cần thiết và tránh phải gõ các câu lệnh dài,phức tạp.

    Khởi tạo GUIDE

    1.Mở Matlab, đi đến cửa sổ dòng lệnh và gõ lênh: guide
    Lập trình giao diện trong Matlab Image003
    2.Chọn Blạnk GUI
    Lập trình giao diện trong Matlab Image005
    3. Một màn hình như sau sẽ xuất hiện:
    Lập trình giao diện trong Matlab Image007
    4. Chúng ta sẽ add các thành phần bên phía tay trái để được 1 giao diện như sau:
    Lập trình giao diện trong Matlab Image009
    Tạo giao diện

    Các bạn kéo thả các thành phần sau:

    -2 edit Text component

    -3 Static Text component

    -1 Component Pushbutton

    Nhấp đúp vào mỗi component để thiết lập tên và các thuộc tính khác.Chúng ta quan tâm đến 2 thuộc tính cơ bản: String(Nhãn của component),Tag(tên của component)

    Component Static Text
    Lập trình giao diện trong Matlab Image045

    Component Edit Text
    Lập trình giao diện trong Matlab Image049
    Tương tự với component Edit Text thứ 2

    Component pushbutton
    Lập trình giao diện trong Matlab Image051
    Sau đó save file giao diện lại ,lúc này Matlab sẽ tạo ra cho bạn 1 file .m tương ứng để xử lý các sự kiện do user tác động đến mỗi component.


    Viết code cho các hàm Callback của GUI

    Như đã nói ở trên, sau khi tạo xong và save file giao diện lại, Matlab sẽ sinh ra một file .m tương ứng để xử lý các sự kiện trên mỗi component. Các hàm xử lý sự kiện này ta gọi là callback function.

    1. Mở file .m tương ứng của chương trinh trong Matlab Editor, nhấn vào biểu tượng , sẽ cho ra 1 danh sách các hàm callback. Chúng ta tìm đến dòng input1_editText_Callback
    Lập trình giao diện trong Matlab Image061
    2. Con trỏ sẽ đưa bạn đến hàm tương ứng
    function input1_editText_Callback(hObject, eventdata, handles)
    % hObject handle to input1_editText (see GCBO)
    % eventdata reserved - to be defined in a future version of MATLAB
    % handles structure with handles and user data (see GUIDATA)

    % Hint: get(hObject,'String') returns contents of input1_editText as text
    % str2double(get(hObject,'String')) returns contents of
    % input1_editText as a double
    Thêm đoạn code sau vào dưới cùng của hàm
    %store the contents of input1_editText as a string. if the string
    %is not a number then input will be empty
    input = str2num(get(hObject,'String'));

    %checks to see if input is empty. if so, default input1_editText to zero
    if (isempty(input))
    set(hObject,'String','0')
    end
    guidata(hObject, handles);
    hObject ở đây thực chất là đối tượng edit, câu lệnh thứ nhất sẽ lấy giá trị string của đối tượng input1_editText và chuyển nó sang dạng số. Câu lệnh if để kiểm tra xem giá trị của input có phù hợp không,nghĩa là có phải là số không, nêu không phải sẽ gán cho nó giá trị mặc định là 0. Câu lệnh cuối cùng để update lại đối tuợng hObject sau mỗi lần gọi hàm Callback.
    Chúng ta làm tương tự với input2_editText_callback
    3. Tiếp đến chúng ta tìm đến hàm add_pushbutton_Callback và xử lý
    Thêm đoạn code sau vào :
    a = get(handles.input1_editText,'String');
    b = get(handles.input2_editText,'String');
    % a and b are variables of Strings type, and need to be converted
    % to variables of Number type before they can be added together

    total = str2num(a) + str2num(b);
    c = num2str(total);
    % need to convert the answer back into String type to display it
    set(handles.answer_staticText,'String',c);
    guidata(hObject, handles);

    Giải thích 1 chút về đoạn code:
    2 câu lệnh đầu tiên lấy các giá trị ở 2 editText.Handles là 1 đối tượng của cửa sổ chính, nó chứa tất cả các component con khác nằm trong cửa sổ này. Vì vậy, khi muốn lấy ID của đối tượng input_editText ta phải tham chiếu đến chúng thông qua đối tượng handle.
    Các giá trị lấy được cần phải chuyển sang dạng số bằng câu lệnh str2num. Sau đó để in kết quả ra Static Text, ta dùng lênh set. Cuối cùng là update lại giao diện bằng câu lệnh guidata.

    KHởi động GUI

    Có 2 cách để chạy chương trình:

    1. Cách thứ nhất, nhấn nútLập trình giao diện trong Matlab Guide_playtrong GUIDE editor.

    Lập trình giao diện trong Matlab Image062
    2. Cách thứ 2:
    Thiết lập Matlab current directory về đúng đường dẫn có chứa các file nguồn của chương trình. Sau đó gõ lệnh: myAdder
    (trong trường hợp các file của chưong trình là myAdder.fig và myAdder.m)
    3. Chương trình sẽ làm việc bình thường nếu tất cả các bước trên được hoàn tất
    Lập trình giao diện trong Matlab Image067

    http://vanbinh.huhohi.com

    Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

    Permissions in this forum:
    Bạn không có quyền trả lời bài viết