• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    MATLAB GUIDE程序設(shè)計參數(shù)在內(nèi)部函數(shù)間及窗口間傳遞方式研究

    2015-10-09 12:22:33陳建張勝良李鑫
    軟件導(dǎo)刊 2015年9期
    關(guān)鍵詞:窗口

    陳建++張勝良++李鑫

    摘 要:MATLAB具有高效科學(xué)的計算功能、友好的用戶界面及功能豐富的應(yīng)用工具箱,在眾多科學(xué)領(lǐng)域得到了廣泛的應(yīng)用。MATLAB GUI具有學(xué)習(xí)起點(diǎn)低、易學(xué)易懂、開發(fā)周期短的優(yōu)點(diǎn),用戶不必深入掌握面向?qū)ο蟮木幊陶Z言也能設(shè)計出精美的人機(jī)界面。深入探討了MATLAB GUIDE程序設(shè)計中參數(shù)在內(nèi)部函數(shù)間及窗口間傳遞的不同方式,結(jié)合實例闡述了各方式原理,討論了其優(yōu)缺點(diǎn)、使用范圍和使用方法,以方便MATLAB GUIDE程序設(shè)計者檢索查看并對其熟練掌握。

    關(guān)鍵詞:MATLAB GUIDE;內(nèi)部函數(shù);窗口;參數(shù)傳遞

    DOIDOI:10.11907/rjdk.151537

    中圖分類號:TP301

    文獻(xiàn)標(biāo)識碼:A 文章編號文章編號:16727800(2015)009001205

    基金項目基金項目:國家自然科學(xué)基金項目(51175473);浙江省教育廳項目(Y201122752)

    作者簡介作者簡介:陳建(1975-),男,山東泰安人,博士,浙江工業(yè)大學(xué)機(jī)械學(xué)院副教授、碩士生導(dǎo)師,研究方向為綠色設(shè)計及制造、可拓設(shè)計;張勝良(1987-),男,江蘇徐州人,浙江工業(yè)大學(xué)機(jī)械學(xué)院碩士研究生,研究方向為綠色設(shè)計及制造;李鑫(1991-),女,湖南株洲人,浙江工業(yè)大學(xué)機(jī)械學(xué)院碩士研究生,研究方向為綠色設(shè)計及制造。

    0 引言

    GUI(Graphical User Interface, 圖形用戶界面)是指由窗口、菜單、對話框等各種圖形對象組成的用戶界面,提供一個友好的人機(jī)圖形交互平臺,用戶通過一定的方法(如鼠標(biāo)或鍵盤)選擇、激活這些圖形對象,使計算機(jī)產(chǎn)生某種動作或變化,例如實現(xiàn)符號運(yùn)算、數(shù)值計算、圖形處理等,具有友好性、操作方便的優(yōu)點(diǎn)[1]。創(chuàng)建MATLAB GUI通常有兩種方式[2]:①使用M文件直接利用句柄圖形指令生成控件及其功能,移植性好,但是因為純代碼編寫,工作量較大,一般需要設(shè)計者有豐富的經(jīng)驗[3];②使用GUIDE(Graphical User Interface Development Environment, 圖形用戶界面開發(fā)環(huán)境),它提供了一系列工具用于建立GUI對象,這些工具極大簡化了設(shè)計和創(chuàng)建GUI的過程,可快速完成GUI界面布局,自動對M文件編程,實現(xiàn)控件的功能擴(kuò)展[410]。顯然第二種方法操作方便、效率高,更適合寫大型程序。本文討論的參數(shù)在內(nèi)部函數(shù)及窗口間的傳遞方式僅限于后者。

    參數(shù)在內(nèi)部函數(shù)及界面間的傳遞方式是MATLAB GUIDE程序設(shè)計的重點(diǎn),也是難點(diǎn),如果熟練掌握,會達(dá)到事半功倍的效果。筆者利用MATLAB GUIDE程序設(shè)計了“基于模糊AHPTOPSIS的綠色設(shè)計油鋸評價系統(tǒng)”軟件,如圖1、圖2所示,這里需要設(shè)置并處理大量的參數(shù)在內(nèi)部函數(shù)及窗口間的傳遞。

    圖1 基于模糊AHPTOPSIS的綠色設(shè)計油鋸評價系統(tǒng)

    為了敘述的方便性和統(tǒng)一性,在本文中,Variable代表參數(shù),Value代表參數(shù)值,Nameoffile代表文件名。本文只對涉及到的各類命令函數(shù)作簡單介紹,具體使用方法請參閱參考文獻(xiàn)[11]。另外,驗證實例編程時,需要在COMMAND WINDOW輸入以下代碼,清除所有窗口,以防出現(xiàn)未知錯誤。

    h=findall(0,'type','figure');

    delete(h);

    1 參數(shù)在內(nèi)部函數(shù)間傳遞方式

    MATLAB GUIDE程序設(shè)計中,參數(shù)在內(nèi)部函數(shù)間傳遞方式有多種,主要分為:handles/guidata、userdata、getappdata/setappdata、save/load、evalin/assignin、global函數(shù)等,為了形象具體地說明參數(shù)在內(nèi)部函數(shù)間傳遞的程序設(shè)計,特用一個例子來說明。如圖 3所示,其實現(xiàn)功能如下:在彈出菜單中選擇一項,然后點(diǎn)擊顯示,右邊文本就會顯示選擇的內(nèi)容,這就涉及到了彈出菜單的數(shù)據(jù)如何傳遞到觸控按鈕的問題,其中,設(shè)置窗口tag:figure,設(shè)置彈出菜單tag:popupmenu/string:軟件/導(dǎo)刊,設(shè)置觸控按鈕tag:pushbutton/enable:off,設(shè)置靜態(tài)文本tag:text,其余采用默認(rèn)設(shè)置。另外,GUIDE自動生成的M文件中,各函數(shù)除了下文添加了代碼的函數(shù)外均采用默認(rèn)代碼。

    圖2 基于模糊AHPTOPSIS的綠色設(shè)計油鋸評價系統(tǒng)參數(shù)

    圖3 參數(shù)在內(nèi)部函數(shù)間傳遞方式實例

    1.1 handles/guidata

    GUIDE中某一窗口的所有控件使用同一個handles結(jié)構(gòu)體,handles結(jié)構(gòu)體中保存了圖形窗口中所有對象的句柄,可以使用handles獲取或設(shè)置某個對象的屬性。由于handles是個結(jié)構(gòu)體,可以為它增加新的結(jié)構(gòu)域,并可在該窗口對應(yīng)的M文件各函數(shù)中共享調(diào)用,這就實現(xiàn)了參數(shù)在內(nèi)部函數(shù)間的傳遞。

    在回調(diào)函數(shù)中把參數(shù)存入handles的方式為:

    handles=guidata(handles.figure);

    handles.variable=value;

    guidata(handles.figure,handles);

    其中,handles=guidata(handles.figure)為該函數(shù)取之前的GUI數(shù)據(jù),并保存到handles中,guidata(handles.figure,handles)用來更新handles結(jié)構(gòu),生成新的GUI數(shù)據(jù)。guidata任何時刻只能管理一個GUI數(shù)據(jù),也就是說,任何GUI任何時刻只能有一個handles結(jié)構(gòu)體,并且不能使用guidata存儲除handles結(jié)構(gòu)外的任何其它數(shù)據(jù),否則,它會覆蓋handles結(jié)構(gòu)體,導(dǎo)致GUI不能運(yùn)行[11]。這里有一點(diǎn)需要注意,經(jīng)常有人引用opening函數(shù)中的guidata(hObject,handles)代替guidata(handles.figure,handles),在opening函數(shù)中,hObject是該窗口的句柄,而在回調(diào)函數(shù)中,hObject指的是該控件的句柄。當(dāng)hObject不是窗口對象句柄時,MATLAB會將handles保存到hObject的父類窗口句柄中。為了保證句柄的一致性,避免未知的錯誤,推薦使用guidata(handles.figure,handles)。

    另,handles不宜添加過多的用戶數(shù)據(jù),因為在GUIDE生成的M文件中,handles是每個回調(diào)函數(shù)的輸入?yún)?shù),這樣會加大每個回調(diào)函數(shù)不必要的內(nèi)存開銷。

    為了實現(xiàn)示例效果,可在彈出菜單和觸控按鈕的callback函數(shù)中添加如下代碼:

    function popupmenu_Callback(hObject, eventdata, handles)

    handles=guidata(handles.figure);%取得之前的GUI數(shù)據(jù),并保存到handles中去

    set(handles.pushbutton,'enable','on');%設(shè)置觸控按鈕可使用

    v = get(handles.popupmenu,'value'); % 確定選擇彈出菜單的第幾項

    str=get(handles.popupmenu,'string');%獲得彈出菜單的所有內(nèi)容

    switch v

    case 1

    handles.forshow=str{1};%選擇第一項,把字符串“軟件”添加到handles結(jié)構(gòu)體中

    case 2

    handles.forshow=str{2};%選擇第二項,把字符串“導(dǎo)刊”添加到handles結(jié)構(gòu)體中

    end

    guidata(handles.figure,handles);%更新handles結(jié)構(gòu),參數(shù)forshow被保存進(jìn)去

    function pushbutton_Callback(hObject, eventdata, handles)

    set(handles.text,'string',handles.forshow);%使文本顯示選擇的內(nèi)容

    1.2 userdata

    userdata方式用于存儲用戶定義的數(shù)據(jù),可以為任何數(shù)據(jù)類型,直接通過對象的userdata屬性進(jìn)行各個callback之間的數(shù)據(jù)存取操作。雖然使用這種方法簡單、安全性高[12],但是每個對象僅能存取一個變量值,因此當(dāng)同一對象存儲多次變量時,先前的變量就會被覆蓋掉,只保留最后一次存儲的變量,因此UserData適用于存儲簡單、單一且讀取不頻繁的數(shù)據(jù)。使用方法:

    首先將數(shù)據(jù)存儲到一個特定的對象中,建議選定該窗口:

    set(handles.figure,'userdata',variable)

    此時,variable數(shù)據(jù)就存在該窗口屬性內(nèi):

    variable= get(handles.figure,'UserData')

    取回變量,可在任意callback中獲取該數(shù)據(jù)值。

    1.3 getappdata/setappdata

    Application數(shù)據(jù)保存在GUI對象的一個未公開屬性Application Data內(nèi),該屬性的值為一個結(jié)構(gòu)體。一個GUI中,可同時存在多個Application數(shù)據(jù),通常選擇窗口對象作為Application數(shù)據(jù)的保存對象。與UserData的方式相比,明顯克服了UserData的缺點(diǎn),使一個對象能存取多個變量值,適用于變量多且讀取不頻繁的數(shù)據(jù)。使用方法:

    setappdata(handles.figure,variable,value)

    添加新的結(jié)構(gòu)域variable到對象handles.figure的Application數(shù)據(jù)中,value可以為任何類型數(shù)據(jù)。

    value=getappdata(handles.figure,variable)

    獲取對象handles.figure的Application數(shù)據(jù)中variable字段的值:

    isappdata(handles.figure,variable)

    判斷對象handles.figure的Application數(shù)據(jù)中是否存在字段variable,存在返回1,否則返回0。

    1.4 save/load

    save函數(shù)將workspace中變量用二進(jìn)制格式保存在當(dāng)前工作目錄的MAT文件下,可以使用load函數(shù)重新載入數(shù)據(jù),其思想是將某參數(shù)的值先存到磁盤,等待用的時候再調(diào)用。當(dāng)然,這種方式涉及到磁盤讀寫,速度會有影響,但卻方便對所有的全局參數(shù)進(jìn)行管理,且適用于大量數(shù)據(jù)的傳遞[12]。使用方法:

    save nameoffile.mat variable1 variable2…variableN

    把工作空間多個參數(shù)保存到名為nameoffile的MAT文件中,如果此前該MAT文件已存在,則寫成save nameoffile.mat variable append。

    return= load('nameoffile.mat')

    將nameoffile.mat加載到工作空間,返回值return為一結(jié)構(gòu)體,包括該MAT文件中的所有數(shù)據(jù)。

    1.5 evalin/assignin

    MATLAB通常的基本工作空間是base空間。MATLAB在程序運(yùn)行過程中,將為每個函數(shù)分配其函數(shù)工作空間(從基本空間中分割出的一塊, 以函數(shù)名作為其工作空間名),各個工作空間之間的變量不能直接引用,在函數(shù)退出后,該函數(shù)空間也就立即被注銷。因此,對于函數(shù)文件,運(yùn)行結(jié)果除輸出變量返回到基本工作空間或其父工作空間(調(diào)用該函數(shù)的程序工作空間)之外,其它中間變量都不在基本工作空間或其父工作空間保留。為了得到某中間變量,可使用evalin/assignin函數(shù),其優(yōu)點(diǎn)是方法簡單,但在維護(hù)工作時不能清除[12]。使用方法:

    assignin('base','variable',value)

    這樣工作空間中就生成一個名字為variable的變量,保存有value數(shù)據(jù)。

    evalin('base','variable')

    得到工作空間變量variable的數(shù)據(jù)。

    為了實現(xiàn)示例效果,可在彈出菜單和觸控按鈕的callback函數(shù)中添加如下代碼:

    function popupmenu_Callback(hObject, eventdata, handles)

    set(handles.pushbutton,'enable','on');%設(shè)置觸控按鈕可使用

    v = get(handles.popupmenu,'value');% 確定選擇彈出菜單的第幾項

    str=get(handles.popupmenu,'string');%獲得彈出菜單的所有內(nèi)容

    switch v

    case 1

    forshow=str{1};%選擇第一項,把字符串“軟件”添加到handles結(jié)構(gòu)體中

    case 2

    forshow=str{2};%選擇第二項,把字符串“導(dǎo)刊”添加到handles結(jié)構(gòu)體中

    end

    assignin('base','zsl',forshow);%工作空間中生成一個名字為zsl的變量,保存有forshow數(shù)據(jù)

    function pushbutton_Callback(hObject, eventdata, handles)

    forshow=evalin('base','zsl');%得到工作空間變量zsl的數(shù)據(jù),返回給forshow。

    set(handles.text,'string',forshow);%使文本顯示選擇的內(nèi)容

    1.6 global函數(shù)

    global函數(shù)方式是最簡單的方式,但也是最容易出錯的方式,其優(yōu)點(diǎn)很明顯:代碼可讀性好,代碼運(yùn)行效率高。因為通過函數(shù)傳參數(shù)的方式,系統(tǒng)會浪費(fèi)過多的時間在復(fù)制數(shù)據(jù)上,其缺點(diǎn)也很明顯:如果你在一個地方修改了x值,那么所有x值就都變了,會出現(xiàn)未知錯誤。另外,全局變量破壞了程序的封裝性。所以,global函數(shù)方式是最后考慮的方式,只適合在單窗口且全局變量較少或數(shù)據(jù)存取比較頻繁時使用,多窗口且全局變量較多時應(yīng)避免使用。使用方法:

    在定義全局變量時,加一句 global variable;在調(diào)用全局變量前,加一句 global variable。

    2 參數(shù)在窗口間傳遞方式

    兩個窗口間的結(jié)構(gòu)分為順序結(jié)構(gòu)和主子結(jié)構(gòu),這是相對于某個參數(shù)是先定義在調(diào)用還是調(diào)用時再定義而言的。當(dāng)窗口A運(yùn)行時產(chǎn)生的參數(shù)在后來運(yùn)行的窗口B中得到調(diào)用,則窗口A、B為順序結(jié)構(gòu);當(dāng)窗口A運(yùn)行時,需運(yùn)行窗口B得到其預(yù)定義數(shù)據(jù)或產(chǎn)生某參數(shù)以調(diào)用,則窗口A、B為主子結(jié)構(gòu),A為主窗口,B為子窗口。

    2.1 順序結(jié)構(gòu)

    MATLAB GUIDE程序設(shè)計中,參數(shù)在窗口間順序傳遞方式有多種,主要分為:findall/guidata、save/load、global函數(shù)、setappdata/getappdata等,它們各有自己的優(yōu)缺點(diǎn),下文將進(jìn)行具體闡述。為了形象具體地說明參數(shù)在順序結(jié)構(gòu)窗口間傳遞的程序設(shè)計,特用一個例子來說明,如圖 4、圖5所示,其實現(xiàn)功能如下:在窗口A的彈出菜單中選擇一項后,窗口A消失,進(jìn)入窗口B,點(diǎn)擊顯示,文本就會顯示在窗口A選擇的內(nèi)容,這就涉及到窗口A中彈出菜單的數(shù)據(jù)如何傳遞到窗口B觸控按鈕的問題。其中,在窗口A中,設(shè)置窗口tag:figure1,設(shè)置彈出菜單tag:popupmenu1/string:軟件/導(dǎo)刊,在窗口B中,設(shè)置窗口tag:figure2,設(shè)置觸控按鈕tag:pushbutton2,設(shè)置靜態(tài)文本tag:text2,其余采用默認(rèn)設(shè)置。另外,GUIDE自動生成的M文件中,各函數(shù)中除了下文添加了代碼的函數(shù)外均采用默認(rèn)代碼。

    圖4 參數(shù)在順序結(jié)構(gòu)窗口 圖5 參數(shù)在順序結(jié)構(gòu)窗口 間傳遞方式示例 間傳遞方式示例

    2.1.1 findall/guidata

    在A窗口,按照參數(shù)在內(nèi)部函數(shù)間handles/guidata的傳遞方式,把傳遞變量保存到handles中。

    在B窗口,進(jìn)行如下步驟:

    HandlesofAObject=findall(0,property1,value1,…)

    在根對象內(nèi)查找滿足要求的窗口并返回所查找到的窗口句柄,要使查找的窗口具有唯一性,可利用該窗口的多個屬性值或利用唯一屬性值:

    HandlesofAObject=guidata(HandlesofAObject)

    獲得窗口A的handles數(shù)據(jù)。

    2.1.2 save/load

    使用方法與參數(shù)在內(nèi)部函數(shù)間傳遞方式相同,故不贅述。

    2.1.3 global

    使用方法與參數(shù)在內(nèi)部函數(shù)間傳遞方式相同,故不贅述。

    2.1.4 setappdata/getappdata

    使用方法與參數(shù)在內(nèi)部函數(shù)間傳遞方式大體相同,通常選擇根對象作為Application數(shù)據(jù)的保存對象,使用方法:

    setappdata(0,variable,value)

    添加新的字段variable到根對象的Application數(shù)據(jù)中,value可以為任何類型數(shù)據(jù)。

    value=getappdata(0,variable)

    獲取根對象的Application數(shù)據(jù)中variable字段的值。

    isappdata(0,variable)

    判斷根對象的Application數(shù)據(jù)中是否存在字段variable,存在返回1,否則返回0。

    2.2 主子結(jié)構(gòu)

    MATLAB GUIDE程序設(shè)計中,參數(shù)在窗口間主子傳遞的方式主要有利用GUIDE本身的varargin/varargout傳遞和利用waitfor函數(shù)傳遞。為了形象說明參數(shù)在主子結(jié)構(gòu)窗口間傳遞的程序設(shè)計,特用一個例子來說明,如圖 6、圖7所示,其實現(xiàn)功能如下:在主窗口A中點(diǎn)擊顯示按鈕,彈出子窗口B,在子窗口B中的彈出菜單中選擇某一項后,窗口B消失,在窗口A中顯示選擇的內(nèi)容,這就涉及到子窗口B彈出菜單的數(shù)據(jù)如何傳遞到主窗口A觸控按鈕的問題,其中,在窗口A中,設(shè)置窗口tag:figure1,設(shè)置觸控按鈕tag:pushbutton1,設(shè)置靜態(tài)文本tag:text1;在窗口B中,設(shè)置窗口tag:figure2,設(shè)置彈出菜單tag:popupmenu2/string:軟件/導(dǎo)刊,其余采用默認(rèn)設(shè)置,另外,GUIDE自動生成的M文件各函數(shù)中除了下文添加了代碼的函數(shù)外均采用默認(rèn)代碼。

    圖6 參數(shù)在主子結(jié)構(gòu)窗口 圖7 參數(shù)在主子結(jié)構(gòu)窗口

    間傳遞方式示例一 間傳遞方式示例二

    2.2.1 利用GUIDE本身的varargin/varargou傳遞參數(shù)

    GUIDE執(zhí)行函數(shù)順序為:Opening函數(shù)→Output函數(shù)→Callback函數(shù),其中Opening函數(shù)和Output函數(shù)只會執(zhí)行一次,執(zhí)行完Opening函數(shù),GUI窗口就被創(chuàng)建了,執(zhí)行完Output函數(shù)就已經(jīng)輸出varargout了。若要GUI根據(jù)用戶的操作來輸出varargout,可以使用uiwait和uiresume,此時GUIDE執(zhí)行函數(shù)順序為:Opening函數(shù)→Callback函數(shù)→Output函數(shù)[11]。在窗口的OpenFcn中,如果不加uiwait,程序會直接運(yùn)行到下面,執(zhí)行OutputFcn,也就是說程序一運(yùn)行,返回值就確定了,再在其它部分對handles.output作更改也沒有效果了。加上uiwait,只有執(zhí)行了uiresume后,才會繼續(xù)執(zhí)行到OutputFcn,在此之前用戶有充分的時間設(shè)置返回值。使用方法:

    在子窗口M文件中,假設(shè)子窗口的名稱為subGUI,設(shè)想的參數(shù)輸入輸出為:[out1,out2,…,outN]=subGUI(in1,in2,…,inN)。

    (1)在OpeningFcn函數(shù)中,讀入?yún)?shù),并用guidata保存,即:

    handles.in1=varargin{1};

    handles.in2=varargin{2};

    handles.inN=varargin{N};

    guidata(hObject,handles);

    (2)在OpeningFcn函數(shù)的結(jié)尾加上uiwait(handles.figure2)。

    (3)在窗口中控制程序結(jié)束的回調(diào)函數(shù)末尾加上uiresume(handles.figure2)。

    (4)在子窗口的OutputFcn中設(shè)置要傳遞出去的參數(shù),即

    varargout{1}=handles.out1;

    varargout{2}=handles.out2;

    varargout{N}=handles.outN;

    (5)末尾添加delete(handles.figure2)結(jié)束程序。

    通過以上設(shè)置后,在主窗口就可以通過[out1,out2,…,outN]=subGUI(in1,in2,…,inN)的形式調(diào)用該子程序。在主窗口中調(diào)用子窗口時,主窗口不需要特別設(shè)置,同調(diào)用普通的函數(shù)一樣。在打開子窗口的同時,主程序還可以響應(yīng)其它控件,不需要擔(dān)心子窗口的返回值被傳錯了地方。

    在子窗口(subGUI.fig)的M文件中,添加如下代碼:

    function subGUI_OpeningFcn(hObject, eventdata, handles, varargin)

    handles.output = hObject;

    guidata(hObject, handles);

    uiwait(handles.figure2);%暫停執(zhí)行OutputFcn函數(shù)執(zhí)行回調(diào)函數(shù),直到resume命令出現(xiàn)

    function varargout = subGUI_OutputFcn(hObject, eventdata, handles)

    varargout{1} = handles.forshow;%輸出參數(shù)為handles結(jié)構(gòu)體中的forshow結(jié)構(gòu)域,即在彈出菜單選中的內(nèi)容

    delete(handles.figure2);%刪除子窗口

    function popupmenu2_Callback(hObject, eventdata, handles)

    handles=guidata(handles.figure2);%取得之前的GUI數(shù)據(jù),并保存到handles中去

    v = get(handles.popupmenu2,'value'); % 確定選擇彈出菜單的第幾項

    str=get(handles.popupmenu2,'string');%獲得彈出菜單的所有內(nèi)容

    switch v

    case 1

    handles.forshow=str{1};%選擇第一項,把字符串“軟件”添加到handles結(jié)構(gòu)體中

    case 2

    handles.forshow=str{2};%選擇第二項,把字符串“導(dǎo)刊”添加到handles結(jié)構(gòu)體中

    end

    set(handles.figure2,'visible','off');%設(shè)置子窗口不可見

    guidata(handles.figure2,handles);%更新handles結(jié)構(gòu),參數(shù)forshow被保存進(jìn)去uiresume(handles.figure2);%恢復(fù)執(zhí)行OutputFcn函數(shù)

    在主窗口(mainGUI.fig)的觸控按鈕的callback函數(shù)添加如下代碼:

    function pushbutton1_Callback(hObject, eventdata, handles)

    forshow=subGUI;%函數(shù)subGUI的返回值賦給變量forshow

    set(handles.text1,'string',forshow);%使文本顯示選擇的內(nèi)容

    2.2.2 利用waitfor函數(shù)

    waitfor函數(shù)用來阻止程序執(zhí)行,等待事件或條件的發(fā)生直到條件滿足,程序繼續(xù)執(zhí)行??梢院芎玫乩脀aitfor這一特性來進(jìn)行參數(shù)在主子窗口間傳遞。以前例說明:首先在子窗口B利用前文所述的handles/guidata,把傳遞的參數(shù)保存到handles中,然后在主窗口中點(diǎn)擊觸控按鈕,彈出子窗口B,此時利用waitfor函數(shù)來阻止主窗口A運(yùn)行,并對子窗口B進(jìn)行操作,直到操作完畢(也就是滿足了waitfor的條件),主窗口A繼續(xù)運(yùn)行,再次通過guidata函數(shù)完成主子窗口間的數(shù)據(jù)傳遞。

    在子窗口(subGUI.fig)的彈出菜單callback函數(shù)添加如下代碼:

    function popupmenu2_Callback(hObject, eventdata, handles)

    handles=guidata(handles.figure2);%取得之前的GUI數(shù)據(jù),并保存到handles中去

    v = get(handles.popupmenu2,'value'); % 確定選擇彈出菜單的第幾項

    str=get(handles.popupmenu2,'string');%獲得彈出菜單的所有內(nèi)容

    switch v

    case 1

    handles.forshow=str{1};%選擇第一項,把字符串“軟件”添加到handles結(jié)構(gòu)體中

    case 2

    handles.forshow=str{2};%選擇第二項,把字符串“導(dǎo)刊”添加到handles結(jié)構(gòu)體中

    end

    guidata(handles.figure2,handles);%更新handles結(jié)構(gòu),參數(shù)forshow被保存進(jìn)去

    set(handles.figure2,'visible','off');%設(shè)置子窗口不可見

    在主窗口(mainGUI.fig)的觸控按鈕的callback函數(shù)添加如下代碼:

    function pushbutton1_Callback(hObject, eventdata, handles)

    handlesofsubGUI =subGUI;%生成子窗口,返回其句柄

    waitfor(subGUI,'visible');%程序暫停,直到在子窗口彈出菜單中選擇一項

    handlesofsubGUI =guidata(handlesofsubGUI);%取得子窗口GUI的handles

    forshow= handlesofsubGUI.forshow;%返回handlesofsubGUI結(jié)構(gòu)體中結(jié)構(gòu)域forshow

    set(handles.text1,'string',forshow);%使文本顯示選擇的內(nèi)容

    3 結(jié)語

    本文討論了MATLAB GUIDE程序設(shè)計中參數(shù)在內(nèi)部函數(shù)間及窗口間傳遞的不同方式,并結(jié)合實例闡述了各方式原理。受篇幅限制,部分示例略。不同的傳遞方式有各自的優(yōu)缺點(diǎn)和適用范圍,在應(yīng)用時需結(jié)合具體情況選擇。

    參考文獻(xiàn)參考文獻(xiàn):

    [1] 于育民, 梁瑛. MATLABGUI在圖形可視化中的應(yīng)用[J]. 安陽工學(xué)院學(xué)報, 2010, 9(4):5354,96.

    [2] 紀(jì)元法, 孫希延, 施滸立. MATLAB的兩種圖形用戶界面參數(shù)輸入方法[J]. 電腦知識與技術(shù), 2008,2(13):728731.

    [3] 陳德偉. MATLAB圖形用戶界面的制作[J]. 常州工學(xué)院學(xué)報, 2005,18(4):811.

    [4] 徐俊立, 王強(qiáng), 金珩. MATLAB環(huán)境下的GUI編程[J]. 內(nèi)蒙古民族大學(xué)學(xué)報:自然科學(xué)版, 2006,21(6):640641.

    [5] 陳安宇, 陳偉, 石彬, 等. MATLAB圖形用戶界面的應(yīng)用研究[J]. 機(jī)電工程技術(shù), 2008,37(10):2627,46.

    [6] 梁輝. MATLAB制作圖形界面的應(yīng)用[J]. 佳木斯大學(xué)學(xué)報:自然科學(xué)版, 2003,21(4):402406.

    [7] 陳立明, 董輝 ,李加海. 基于MATLAB 6.5的圖形用戶界面應(yīng)用技術(shù)研究[J]. 電腦開發(fā)與應(yīng)用, 2005,18(4):4749.

    [8] 陳子為. 基于MATLAB GUI掃雷游戲的設(shè)計與實現(xiàn)[J]. 現(xiàn)代電子技術(shù), 2008,31(24):8588.

    [9] 王玉林, 葛蕾, 李艷斌. 新型界面開發(fā)工具:MATLAB GUI[J]. 無線電通信技術(shù), 2008,34(6):5052.

    [10] 張秋紅, 李玉忍. 用MATLAB制作圖形用戶界面[J]. 電腦開發(fā)與應(yīng)用, 2003,16(3):1011,14.

    [11] 羅華飛. MATLAB GUI設(shè)計學(xué)習(xí)手記[M]. 北京: 北京航空航天大學(xué)出版社, 2009.

    [12] 南洋, 周靜, 孟開元, 等. 基于MATLAB GUI的界面設(shè)計[J]. 石油儀器, 2008,22(6):7678.

    責(zé)任編輯(責(zé)任編輯:杜能鋼)

    猜你喜歡
    窗口
    國有企業(yè)服務(wù)窗口“四維一體”客服務(wù)新模式的實踐與探索
    淺議立案信訪窗口的建設(shè)
    商情(2017年14期)2017-06-09 12:53:30
    試探英語學(xué)習(xí)的有效“窗口”
    從港口“窗口”看中國經(jīng)濟(jì)新氣象
    核電廠DVN系統(tǒng)檢修窗口優(yōu)化
    價值工程(2017年9期)2017-04-18 10:42:37
    對做好高校辦公室工作的幾點(diǎn)思考
    綻放“窗口”的最美警花
    感悟“窗口”的結(jié)晶
    淺談住宅工程施工中的防滲漏理念及措施
    全域開放 釋放“窗口”能量
    精品免费久久久久久久清纯| 一进一出抽搐gif免费好疼 | 日日爽夜夜爽网站| 99国产精品免费福利视频| 国产一卡二卡三卡精品| 99在线人妻在线中文字幕| 长腿黑丝高跟| 亚洲视频免费观看视频| 国产成年人精品一区二区 | 十八禁人妻一区二区| 啦啦啦 在线观看视频| 天堂动漫精品| 女性生殖器流出的白浆| 亚洲性夜色夜夜综合| 亚洲一码二码三码区别大吗| 午夜免费激情av| 热99re8久久精品国产| 首页视频小说图片口味搜索| 国产精品 欧美亚洲| 欧美久久黑人一区二区| 精品高清国产在线一区| 国产精品1区2区在线观看.| 国产欧美日韩一区二区三区在线| 女生性感内裤真人,穿戴方法视频| 欧美精品一区二区免费开放| 怎么达到女性高潮| 18禁观看日本| 亚洲av电影在线进入| 久99久视频精品免费| 久久午夜综合久久蜜桃| 久久久久久免费高清国产稀缺| 欧美老熟妇乱子伦牲交| 如日韩欧美国产精品一区二区三区| 亚洲欧洲精品一区二区精品久久久| 欧美不卡视频在线免费观看 | 久久伊人香网站| 欧美激情久久久久久爽电影 | 久久久久久久精品吃奶| 夫妻午夜视频| 日本黄色视频三级网站网址| 国产黄a三级三级三级人| 欧美日韩视频精品一区| 黄色怎么调成土黄色| 亚洲一区二区三区色噜噜 | 日韩欧美在线二视频| 色老头精品视频在线观看| 国产xxxxx性猛交| 亚洲av第一区精品v没综合| 午夜老司机福利片| 黄色毛片三级朝国网站| 亚洲少妇的诱惑av| 久久中文字幕一级| 国产亚洲欧美精品永久| 侵犯人妻中文字幕一二三四区| 国产主播在线观看一区二区| 亚洲aⅴ乱码一区二区在线播放 | 亚洲性夜色夜夜综合| 亚洲成a人片在线一区二区| 午夜91福利影院| 乱人伦中国视频| 淫秽高清视频在线观看| 十分钟在线观看高清视频www| 国产成人免费无遮挡视频| 久久精品国产综合久久久| 一级片'在线观看视频| 久久人人97超碰香蕉20202| 国产野战对白在线观看| av在线播放免费不卡| 午夜福利,免费看| 免费女性裸体啪啪无遮挡网站| 高清黄色对白视频在线免费看| 男女下面插进去视频免费观看| 超色免费av| 亚洲成a人片在线一区二区| 丰满迷人的少妇在线观看| 亚洲av成人一区二区三| 麻豆成人av在线观看| 天天躁夜夜躁狠狠躁躁| 男女做爰动态图高潮gif福利片 | 999精品在线视频| 亚洲国产精品999在线| 丰满的人妻完整版| 午夜亚洲福利在线播放| 精品欧美一区二区三区在线| 精品少妇一区二区三区视频日本电影| 丰满的人妻完整版| 国产国语露脸激情在线看| 美女福利国产在线| 欧美av亚洲av综合av国产av| 1024视频免费在线观看| 久久热在线av| 身体一侧抽搐| 国产亚洲欧美在线一区二区| 国产亚洲欧美98| 不卡av一区二区三区| 丁香欧美五月| 十八禁人妻一区二区| 高潮久久久久久久久久久不卡| 成人av一区二区三区在线看| 久久人妻福利社区极品人妻图片| 日韩欧美在线二视频| 精品久久久久久久久久免费视频 | 男女午夜视频在线观看| 1024香蕉在线观看| 一边摸一边抽搐一进一小说| 中文字幕av电影在线播放| 神马国产精品三级电影在线观看 | 亚洲欧美激情在线| 亚洲久久久国产精品| 波多野结衣一区麻豆| 久久久久精品国产欧美久久久| 亚洲人成网站在线播放欧美日韩| 国产精品日韩av在线免费观看 | 久久精品亚洲精品国产色婷小说| 日韩成人在线观看一区二区三区| 精品久久久久久,| 免费在线观看完整版高清| 一夜夜www| 免费久久久久久久精品成人欧美视频| 12—13女人毛片做爰片一| 国产精品爽爽va在线观看网站 | 在线看a的网站| 法律面前人人平等表现在哪些方面| 亚洲精品成人av观看孕妇| 亚洲,欧美精品.| 欧美日韩一级在线毛片| 午夜福利影视在线免费观看| 另类亚洲欧美激情| 欧美人与性动交α欧美精品济南到| 99国产精品99久久久久| avwww免费| 高清毛片免费观看视频网站 | 国产欧美日韩一区二区三| 成年人黄色毛片网站| 日日爽夜夜爽网站| 欧美黑人精品巨大| 操出白浆在线播放| 成人永久免费在线观看视频| 午夜福利,免费看| 黄色片一级片一级黄色片| 精品久久久精品久久久| 宅男免费午夜| 首页视频小说图片口味搜索| 不卡一级毛片| 午夜亚洲福利在线播放| 精品国产乱子伦一区二区三区| 亚洲av成人不卡在线观看播放网| a级毛片在线看网站| 成人影院久久| 精品人妻1区二区| 久久99一区二区三区| 天堂影院成人在线观看| 精品人妻1区二区| 久久久久久久精品吃奶| 麻豆一二三区av精品| 亚洲欧美日韩无卡精品| 国产欧美日韩一区二区精品| 美国免费a级毛片| 午夜a级毛片| 一区二区三区精品91| 久久国产亚洲av麻豆专区| 亚洲成人精品中文字幕电影 | 亚洲自偷自拍图片 自拍| 欧美黑人精品巨大| 99久久精品国产亚洲精品| 久久久久国产精品人妻aⅴ院| av视频免费观看在线观看| 真人一进一出gif抽搐免费| 9191精品国产免费久久| avwww免费| 久久久国产成人免费| 搡老熟女国产l中国老女人| 久久精品aⅴ一区二区三区四区| 男人操女人黄网站| 一边摸一边抽搐一进一出视频| 亚洲,欧美精品.| 日韩一卡2卡3卡4卡2021年| 老熟妇乱子伦视频在线观看| 亚洲中文av在线| 自拍欧美九色日韩亚洲蝌蚪91| 亚洲人成网站在线播放欧美日韩| 亚洲av电影在线进入| 多毛熟女@视频| ponron亚洲| 亚洲一码二码三码区别大吗| 国产成人精品久久二区二区免费| 1024香蕉在线观看| 久久久久久亚洲精品国产蜜桃av| 欧美日韩黄片免| 91av网站免费观看| 久久青草综合色| 日本欧美视频一区| 国产成人一区二区三区免费视频网站| 757午夜福利合集在线观看| 中文字幕人妻丝袜一区二区| 多毛熟女@视频| 亚洲全国av大片| 男女下面插进去视频免费观看| 看免费av毛片| 他把我摸到了高潮在线观看| 亚洲欧美精品综合久久99| 动漫黄色视频在线观看| 久久亚洲真实| 美国免费a级毛片| 在线免费观看的www视频| 夜夜夜夜夜久久久久| 亚洲三区欧美一区| 欧美激情高清一区二区三区| 国产精品电影一区二区三区| 国产又爽黄色视频| 人人妻人人澡人人看| 一边摸一边抽搐一进一出视频| 黄色视频不卡| 国产人伦9x9x在线观看| 国产不卡一卡二| 99热国产这里只有精品6| 美女国产高潮福利片在线看| 国内毛片毛片毛片毛片毛片| 制服人妻中文乱码| 日本 av在线| 一进一出抽搐动态| 变态另类成人亚洲欧美熟女 | e午夜精品久久久久久久| 一边摸一边做爽爽视频免费| 狠狠狠狠99中文字幕| 午夜免费鲁丝| 久久天堂一区二区三区四区| 久久精品国产99精品国产亚洲性色 | 91老司机精品| 国产精品久久久人人做人人爽| 热99re8久久精品国产| 在线观看免费视频日本深夜| 欧美成人性av电影在线观看| 男男h啪啪无遮挡| 两个人免费观看高清视频| 国产麻豆69| 黑人巨大精品欧美一区二区mp4| 亚洲人成77777在线视频| 亚洲欧洲精品一区二区精品久久久| 新久久久久国产一级毛片| 久久性视频一级片| 精品少妇一区二区三区视频日本电影| 欧美在线一区亚洲| 搡老熟女国产l中国老女人| 国产成年人精品一区二区 | 亚洲专区国产一区二区| 99国产综合亚洲精品| 两个人看的免费小视频| 国产男靠女视频免费网站| 久久中文字幕人妻熟女| 成熟少妇高潮喷水视频| 精品少妇一区二区三区视频日本电影| 19禁男女啪啪无遮挡网站| 免费在线观看亚洲国产| 欧美 亚洲 国产 日韩一| 在线观看一区二区三区| 91国产中文字幕| 最近最新中文字幕大全电影3 | 日韩高清综合在线| 久久久久国产一级毛片高清牌| 国产精品98久久久久久宅男小说| 他把我摸到了高潮在线观看| 男人的好看免费观看在线视频 | 在线播放国产精品三级| 亚洲欧美激情在线| 啦啦啦 在线观看视频| 免费在线观看亚洲国产| 日韩免费高清中文字幕av| 亚洲自拍偷在线| 少妇裸体淫交视频免费看高清 | 色尼玛亚洲综合影院| 欧美成人午夜精品| 亚洲久久久国产精品| 日本一区二区免费在线视频| 热re99久久国产66热| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲一码二码三码区别大吗| 级片在线观看| 身体一侧抽搐| 国产一区二区三区在线臀色熟女 | av在线播放免费不卡| 国产色视频综合| 咕卡用的链子| 久久狼人影院| 操美女的视频在线观看| 日韩免费av在线播放| 视频在线观看一区二区三区| 国产精品98久久久久久宅男小说| 一个人观看的视频www高清免费观看 | 午夜免费鲁丝| 国产成年人精品一区二区 | 19禁男女啪啪无遮挡网站| 国产人伦9x9x在线观看| 精品国产美女av久久久久小说| 亚洲欧美精品综合久久99| 亚洲精品在线观看二区| 国产精品秋霞免费鲁丝片| 亚洲 欧美 日韩 在线 免费| 1024视频免费在线观看| 一级a爱视频在线免费观看| 51午夜福利影视在线观看| 亚洲av成人一区二区三| 亚洲色图 男人天堂 中文字幕| 国产成人av激情在线播放| 少妇被粗大的猛进出69影院| 丰满人妻熟妇乱又伦精品不卡| 亚洲第一av免费看| 老司机午夜十八禁免费视频| 婷婷精品国产亚洲av在线| 欧美日韩一级在线毛片| 国产精品综合久久久久久久免费 | 美女 人体艺术 gogo| 亚洲一区二区三区色噜噜 | 又黄又爽又免费观看的视频| 亚洲七黄色美女视频| 精品卡一卡二卡四卡免费| 亚洲av成人av| 欧美最黄视频在线播放免费 | 色尼玛亚洲综合影院| 精品一区二区三卡| 精品午夜福利视频在线观看一区| 啦啦啦免费观看视频1| 97超级碰碰碰精品色视频在线观看| 一进一出抽搐gif免费好疼 | 国产不卡一卡二| 国产单亲对白刺激| 免费少妇av软件| 亚洲免费av在线视频| 97碰自拍视频| 老司机午夜十八禁免费视频| 新久久久久国产一级毛片| 精品一区二区三区四区五区乱码| av天堂在线播放| 日韩有码中文字幕| 丝袜在线中文字幕| 亚洲人成电影免费在线| 国产高清视频在线播放一区| 亚洲一卡2卡3卡4卡5卡精品中文| 成人特级黄色片久久久久久久| 变态另类成人亚洲欧美熟女 | 国产成人一区二区三区免费视频网站| www.自偷自拍.com| 日本撒尿小便嘘嘘汇集6| 日韩精品青青久久久久久| 女警被强在线播放| 神马国产精品三级电影在线观看 | 日本 av在线| 久久久国产一区二区| 免费少妇av软件| 中文字幕色久视频| 男人舔女人下体高潮全视频| svipshipincom国产片| 国产不卡一卡二| av网站在线播放免费| 日韩成人在线观看一区二区三区| 亚洲第一欧美日韩一区二区三区| 欧美在线黄色| 多毛熟女@视频| 精品一品国产午夜福利视频| 国产片内射在线| 国产欧美日韩一区二区三| 国产av一区在线观看免费| 另类亚洲欧美激情| 国产精品一区二区在线不卡| 国产精品国产av在线观看| 夫妻午夜视频| 欧美激情 高清一区二区三区| 国产高清国产精品国产三级| 欧美黄色片欧美黄色片| 亚洲 欧美一区二区三区| 免费高清视频大片| 成人精品一区二区免费| 日韩视频一区二区在线观看| 老司机深夜福利视频在线观看| 欧美日韩亚洲综合一区二区三区_| 美国免费a级毛片| 免费观看人在逋| 欧美人与性动交α欧美软件| 交换朋友夫妻互换小说| 侵犯人妻中文字幕一二三四区| 亚洲五月天丁香| 国产精品98久久久久久宅男小说| 桃红色精品国产亚洲av| 12—13女人毛片做爰片一| 亚洲人成电影免费在线| 女人高潮潮喷娇喘18禁视频| 国产成人欧美在线观看| 国产麻豆69| 国产av在哪里看| 99久久精品国产亚洲精品| 村上凉子中文字幕在线| 一级片'在线观看视频| 亚洲第一av免费看| 久久伊人香网站| 亚洲视频免费观看视频| 一级毛片女人18水好多| 亚洲av电影在线进入| 好看av亚洲va欧美ⅴa在| 香蕉丝袜av| 无限看片的www在线观看| а√天堂www在线а√下载| 国产精品国产高清国产av| 免费搜索国产男女视频| 成人特级黄色片久久久久久久| 中文欧美无线码| 老汉色∧v一级毛片| 久久午夜亚洲精品久久| www.自偷自拍.com| 久久草成人影院| 国产精品香港三级国产av潘金莲| 在线播放国产精品三级| 免费高清视频大片| 9191精品国产免费久久| 国产成人精品无人区| 一二三四在线观看免费中文在| 国产成人影院久久av| 亚洲精品国产区一区二| 久久久精品国产亚洲av高清涩受| 色在线成人网| 欧洲精品卡2卡3卡4卡5卡区| av天堂在线播放| 久久香蕉激情| 亚洲熟女毛片儿| 国产成人精品在线电影| 最新美女视频免费是黄的| 在线观看一区二区三区激情| e午夜精品久久久久久久| 日本五十路高清| 黄色片一级片一级黄色片| 老汉色∧v一级毛片| 国产av又大| 亚洲人成网站在线播放欧美日韩| 亚洲国产欧美一区二区综合| 不卡av一区二区三区| 久久久久久久午夜电影 | 在线视频色国产色| 欧美成狂野欧美在线观看| 欧美性长视频在线观看| 日韩三级视频一区二区三区| 女生性感内裤真人,穿戴方法视频| 亚洲第一欧美日韩一区二区三区| 伊人久久大香线蕉亚洲五| 男人的好看免费观看在线视频 | 亚洲aⅴ乱码一区二区在线播放 | 亚洲一区高清亚洲精品| 日韩精品免费视频一区二区三区| 国产aⅴ精品一区二区三区波| 99国产精品免费福利视频| 色综合婷婷激情| 日本a在线网址| 国产精品98久久久久久宅男小说| 一区在线观看完整版| 99国产极品粉嫩在线观看| 老司机福利观看| 亚洲精品一二三| 日日摸夜夜添夜夜添小说| 久久人妻福利社区极品人妻图片| 亚洲专区国产一区二区| 在线观看免费午夜福利视频| 天天躁狠狠躁夜夜躁狠狠躁| 天堂影院成人在线观看| 欧美日韩中文字幕国产精品一区二区三区 | 国产日韩一区二区三区精品不卡| 国产精品日韩av在线免费观看 | 国产一区在线观看成人免费| 亚洲情色 制服丝袜| 国产精品九九99| 免费在线观看视频国产中文字幕亚洲| 1024视频免费在线观看| 午夜视频精品福利| 久久久国产成人精品二区 | 精品高清国产在线一区| 日韩av在线大香蕉| 国产成人欧美| 国产精品亚洲av一区麻豆| 久久精品国产亚洲av香蕉五月| 黄色怎么调成土黄色| 国产精品av久久久久免费| 亚洲午夜精品一区,二区,三区| 久久精品亚洲av国产电影网| 波多野结衣高清无吗| 婷婷丁香在线五月| 日本精品一区二区三区蜜桃| 亚洲欧美一区二区三区久久| 中亚洲国语对白在线视频| 色哟哟哟哟哟哟| 日本vs欧美在线观看视频| 亚洲国产毛片av蜜桃av| 成人18禁高潮啪啪吃奶动态图| 女性生殖器流出的白浆| 老熟妇乱子伦视频在线观看| 亚洲一卡2卡3卡4卡5卡精品中文| 国产精品久久久av美女十八| 亚洲情色 制服丝袜| 日韩视频一区二区在线观看| 一级a爱视频在线免费观看| 99精品久久久久人妻精品| 美女大奶头视频| av天堂久久9| av有码第一页| 欧美日韩精品网址| 麻豆国产av国片精品| 亚洲欧美日韩无卡精品| 欧美久久黑人一区二区| 国产一区二区三区在线臀色熟女 | 精品熟女少妇八av免费久了| 午夜福利欧美成人| 99精品在免费线老司机午夜| 亚洲av熟女| 丝袜在线中文字幕| 老司机福利观看| www.999成人在线观看| 高清欧美精品videossex| 在线观看午夜福利视频| 国产精品影院久久| 在线播放国产精品三级| 免费高清在线观看日韩| 一二三四在线观看免费中文在| 国产精品美女特级片免费视频播放器 | 一区二区日韩欧美中文字幕| 久久国产亚洲av麻豆专区| 欧美在线一区亚洲| 亚洲全国av大片| 欧美中文综合在线视频| 五月开心婷婷网| 成年版毛片免费区| 视频区图区小说| 一区二区日韩欧美中文字幕| 成人精品一区二区免费| 午夜福利在线观看吧| 自线自在国产av| 国产精品久久电影中文字幕| 亚洲精品国产精品久久久不卡| 亚洲一区中文字幕在线| 99精品久久久久人妻精品| 久久狼人影院| 看片在线看免费视频| 欧美在线一区亚洲| 久久人人97超碰香蕉20202| 欧洲精品卡2卡3卡4卡5卡区| 色综合站精品国产| 侵犯人妻中文字幕一二三四区| x7x7x7水蜜桃| 国产精品国产av在线观看| 亚洲午夜理论影院| 黄片大片在线免费观看| 在线视频色国产色| 看免费av毛片| 交换朋友夫妻互换小说| 亚洲 国产 在线| www.熟女人妻精品国产| 嫩草影院精品99| 黄网站色视频无遮挡免费观看| 在线av久久热| 国产精品二区激情视频| 岛国在线观看网站| 一进一出抽搐动态| 国产欧美日韩一区二区三| 女人爽到高潮嗷嗷叫在线视频| 桃红色精品国产亚洲av| 国产在线观看jvid| 日日爽夜夜爽网站| 中国美女看黄片| 国产男靠女视频免费网站| 国产精品一区二区免费欧美| 亚洲七黄色美女视频| 日韩免费av在线播放| 丰满人妻熟妇乱又伦精品不卡| 黄色视频,在线免费观看| 动漫黄色视频在线观看| 精品日产1卡2卡| 日韩三级视频一区二区三区| 国产精品98久久久久久宅男小说| 日韩一卡2卡3卡4卡2021年| 1024香蕉在线观看| 欧美性长视频在线观看| 日韩有码中文字幕| 午夜免费观看网址| 超碰成人久久| 日本一区二区免费在线视频| 国产欧美日韩一区二区三| 一本大道久久a久久精品| 1024视频免费在线观看| 黄色 视频免费看| 美女 人体艺术 gogo| 日韩免费av在线播放| 日韩欧美三级三区| 黑人欧美特级aaaaaa片| 色婷婷久久久亚洲欧美| 国产精品自产拍在线观看55亚洲| 精品久久久精品久久久| 99国产精品一区二区蜜桃av| www日本在线高清视频| 18美女黄网站色大片免费观看| 亚洲精品中文字幕在线视频| 免费在线观看黄色视频的| 新久久久久国产一级毛片| 欧美日韩亚洲国产一区二区在线观看| 18禁国产床啪视频网站| 中文字幕av电影在线播放| 中文字幕人妻丝袜制服| 亚洲欧美精品综合一区二区三区| 久久午夜亚洲精品久久| 国产男靠女视频免费网站| www.精华液| 国产一区二区三区综合在线观看| 国产亚洲精品一区二区www| 视频在线观看一区二区三区| 18禁观看日本| 欧美日韩亚洲国产一区二区在线观看| 人人妻人人爽人人添夜夜欢视频| 9191精品国产免费久久| 国产精品 国内视频| 午夜视频精品福利| 91麻豆av在线|