欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      關(guān)于GUI的一點(diǎn)心得體會

      時(shí)間:2019-05-13 23:33:50下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《關(guān)于GUI的一點(diǎn)心得體會》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《關(guān)于GUI的一點(diǎn)心得體會》。

      第一篇:關(guān)于GUI的一點(diǎn)心得體會

      [Fig文件方式,即使用菜單File->New->GUI來設(shè)計(jì)界面] 首先值得注意的是,在低版本matlab上 制作的含GUI的m文件一般不能在高版本的matlab上面運(yùn)行,但是從7.0版開始改進(jìn)了一點(diǎn),我試過 6.5版的含GUI的m文件可以在 7.0版上運(yùn)行,但如果在7.0版上面修改過.fig文件,那么就不能回到6.5版上運(yùn)行了(顯示一堆錯誤,我沒看懂,不知道能否通過修改使之重新可在 6.5版上運(yùn)行,呵呵),而在7.0版上制作的含GUI的m文件就完全不能放到6.5版上運(yùn)行了(也是同樣的錯誤)。這可能是因?yàn)閙atlab各版本在 GUI上改動較大,所以都不支持向下兼容。也許兼容性差是使用GUI編寫程序的最大麻煩。

      其次,說說使用GUI的好處。不知道是否承襲了VC or BCB的習(xí)慣,我比較喜歡編寫完程序后按快捷鍵運(yùn)行(此時(shí)會自動保存m文件),但是,對于程序有輸入?yún)?shù)的 時(shí)候,如果不采用GUI方式,這顯然是行不通的――當(dāng)然了,可以在command window按“向上”鍵然后重新改寫你想要的參數(shù)。對于一些較大型的程序,正因?yàn)槲冶容^偏向于按F5運(yùn)行程序,所以我會選擇使用GUI方式。不過GUI 方式的好處就遠(yuǎn)不止于此了,它可以把幾個功能相關(guān)的模塊集中起來,使得不需要重新關(guān)閉、運(yùn)行就能得到不同的結(jié)果,便于比較;可以減少figure滿天飛的現(xiàn)象,這在matlab中尤為明顯;便于交互式地觀看不同的數(shù)據(jù),例如在我處理的fMRI問題中,希望觀看每個三維點(diǎn)對應(yīng)的時(shí)間序列,這時(shí)候需要提供交互式的選擇??不過,盡管GUI有很多好處,但是其缺點(diǎn)也是有的,除了上面提到的兼容性(移植性)以外,要管理、維護(hù)一個GUI界面也是比較麻煩的,相信有其他語言的界面設(shè)計(jì)經(jīng)驗(yàn)的朋友也知道這點(diǎn)。

      再 者,對GUI問題,說說我的一點(diǎn)經(jīng)驗(yàn)吧。其實(shí),matlab已經(jīng)在這方面改進(jìn)了不少,從控件的增加和教程的學(xué)習(xí)都可以看出來。例如6.5版本是沒有 Panel和Button Group這兩個控件的,在2006a版本中就新增了這兩個控件(這個好像7.0版就有了,不確定);教程方面,也使用了最為直觀的視頻教學(xué)方式,建議新手看看Creating a GUI with GUIDE 和Creating Graphical User Interfaces兩節(jié)。所以,操作上的細(xì)節(jié)我就不多講了,自己摸索一下就ok了。至于編程時(shí)最為關(guān)鍵的參數(shù)傳遞問題,可以參考本論壇或者仿真論壇上面的“函數(shù)結(jié)構(gòu)與參數(shù)傳遞”一文,作者整理得較完整,不過有點(diǎn)難懂。這里我簡單說一下吧:

      [轉(zhuǎn)cwit]關(guān)于參數(shù)傳遞的方法:

      1.在內(nèi)存中提?。孩?采用function的varargin和varargout傳送,② 存在handle的ApplicationData中,③保存在handles里面。當(dāng)然還有其他方法; 2.存在硬盤上,采用save和load;

      3.用全局變量,最次的辦法,有時(shí)卻是最好的辦法;

      我想,對于這里處理的GUI問題,一般不會用到save和load命令(要 從mat文件讀取數(shù)據(jù)初始化或者把數(shù)據(jù)存儲到mat文件中例外),“function的varargin和varargout傳送”的方法也不較少使用(因?yàn)閷τ诳丶幕卣{(diào)函數(shù),matlab規(guī)定了輸入?yún)?shù)為“hObject, eventdata, handles, varargin”,且一般沒有返回值,所以不同于自定義的函數(shù)),所以剩下的方法就只有三種了: 1.存在handle的ApplicationData中――利用setappdata函數(shù)將數(shù)據(jù)保存在對象的“ApplicationData”屬性中,利 用getappdata函數(shù)從對象的“ApplicationData”屬性中提取數(shù)據(jù),如果沒有定義,就為空。例如,假設(shè)figure的tag屬性是 figure1,則setappdata(handles.figure1,’A’,A)就可以把變量A存放到figure1的 “ApplicationData”屬性中,名字為A,而B = getappdata(handles.figure1,’A’)就可以把figure1的“ApplicationData”屬性中名字為A的變量賦給 B。setappdata和getappdata操作的對象,最好為figure_handle,便于管理和擴(kuò)展。Matlab的高級編程和對象控制,將 大量使用這兩個函數(shù)[轉(zhuǎn)自cwit];

      2.保存在handles里面――首先,這是訪問控件的常用方法,注意到Tag是唯一標(biāo)識控件的屬性,也就說,如果一個控件的Tag屬性是a,那么,在fig 對應(yīng)的m文件中,只要含有“handles”作為其輸入?yún)?shù)的函數(shù)中,就可以使用handles.a對該控件進(jìn)行訪問。既然句柄(相當(dāng)于其他語言中的指 針)已經(jīng)拿到手了,就任由“宰割”了(例如設(shè)置屬性、存取數(shù)據(jù)等就比較容易了);其次,可以利用這種方法把自定義的變量保存在handles里面進(jìn)行存取,這在matlab幫助的Creating a GUI with GUIDE一節(jié)中有具體介紹,不多說;

      3.用全局變量的方法――這是我進(jìn)行參數(shù)傳遞的常用方法,使用方法是:在兩個函數(shù)體(當(dāng)然可以是多個了,這里是主函數(shù)和子函數(shù)的意思)中使用前加入語句 “global A”,其中A是多個函數(shù)需要傳遞的變量名,多個變量用空格格開,句末不需要加分號。這種方法由于存放在硬盤上,存取速度會減慢,但是如果變量個數(shù)不多、或 者對該變量引用的函數(shù)不多,可以考慮用此辦法(我尚未能領(lǐng)會cwit兄所說“最次的辦法,有時(shí)卻是最好的辦法”之含義)。

      至于其他有關(guān)GUI命令、控件屬性和圖形屬性可以參考matlab的幫助,或者參考“GUI命令大全”、《精通GUI圖形界面編程》(這兩個本論壇有)、“Matlab圖形圖像屬性”、“GUI.rtf”(這兩個參見附件,后者下載后手動修改一下后綴名)。實(shí)際上,用得比較多的控件屬性不外乎以下幾種(高手例外):

      Visible屬性,例如axes、edit、button等,格式:set(handles.***, ‘Visible’, ‘on’);或者set(handles.***, ‘Visible’, ‘off’);

      String屬性,例如edit、text等,格式:str=get(handles.***, ‘String’)或set(handles.***,’String’,str);Enable屬性,例如edit、button、text等,格式:set(handles.***, ‘Enable’, ‘on’);或者set(handles.***, ‘Enable’, ‘off’);

      Value屬性,例如radio button、check box等,格式:a=get(handles.***, ‘Value’)或set(handles.***,’Value’,1);或set(handles.***,’Value’,0);

      留意一下響應(yīng)函數(shù)的注釋部分,有時(shí)候會得到提示的。例如,我的 matlab 2007a 中,在設(shè)計(jì)界面上增加了 listbox 控件后,m 文件的對應(yīng)回調(diào)函數(shù)處顯示如下:

      %---Executes on selection change in listbox1.function listbox1_Callback(hObject, eventdata, handles)% hObject handle to listbox1(see GCBO)% eventdata reserved100*k/N)<= 1e-003 waitbar(k/N);i = i + step;end 其中i是控制進(jìn)度條在何處刷新,k是程序的循環(huán)變量,N是程序循環(huán)的總次數(shù)。

      使用 uicontrol 方式實(shí)現(xiàn)進(jìn)度條的示例: 復(fù)制內(nèi)容到剪貼板 代碼: figure;e1 = uicontrol(gcf,'style','edit','BackgroundColor','w',...'unit','normalized','position',[0.35,0.6,0.02,0.25]);e2 = uicontrol(gcf,'style','edit','BackgroundColor','r',...'unit','normalized','position',[0.3525,0.6,0.015,0.01]);drawnow;n = 1000;ii = 1;for i = 1:0.01:n if(ii-100*i/n)<= 1e-003 set(e2,'position',[0.3525,0.6,0.015,0.01+0.24*i/n]);drawnow;ii = ii + 1;end end 【附錄】轉(zhuǎn)自cwit兄:

      m文件與fig文件創(chuàng)建figure的十大差異——用代碼寫figure,并不是麻煩。如果你習(xí)慣了,或者熟悉了,會發(fā)現(xiàn)用代碼實(shí)現(xiàn)guide編程,比GUI方便很多,功能也很強(qiáng)大。用m文件實(shí)現(xiàn)guide編程,相比GUI編程有幾大差異: 1.代碼可復(fù)用,節(jié)省成本;

      2.GUI不能靈活創(chuàng)建uimenu,并且不能編輯其所有屬性; 3.GUI還沒有實(shí)現(xiàn)創(chuàng)建uitoolbox; 4.GUI不能創(chuàng)建所有axes的子對象;

      5.寫界面也有一些算法,在GUI中無法實(shí)現(xiàn)。而用m文件就可以實(shí)現(xiàn)在不同窗口尺寸下給對象以合適的位置; 6.m文件可以生成非常復(fù)雜的界面;

      7.采用GUI編程,代碼編譯后依賴于*.fig文件; 8.m文件可以實(shí)現(xiàn)組件;

      9.m文件創(chuàng)建的對象,可以方便的在handle中存取數(shù)據(jù); 10.m文件可以將創(chuàng)建對象代碼與動作執(zhí)行代碼很好的結(jié)合起來。

      【注】關(guān)于兩種方式的運(yùn)行:

      對于fig文件方式:fig文件記錄的是控件的布局和屬性等資源信息,m文件記錄的是控件的響應(yīng)消息(這是個人理解,更準(zhǔn)確的介紹請參閱有關(guān)GUI的書籍,我懶得去查了,呵呵),兩者缺一不可。所以,不能通過打開fig文件(如菜單中的Open命令)來運(yùn)行該GUI,這種方式的運(yùn)行方法有兩種:打開該GUI對應(yīng)的m文件,然后像普通m文件那樣運(yùn)行;打開該GUI的設(shè)計(jì)界面(菜單操作:File?New?GUI?Open Existing GUI,打開 fig 文件),然后點(diǎn)擊設(shè)計(jì)界面工具欄上的那個像箭頭一樣的按鈕

      對于m文件方式:像普通m文件那樣運(yùn)行就可以了

      先建立兩個GUI,一個名為guidata1.fig guidata2.fig,它們的tag屬性也分別為guidata1,guidata2。然后在guidata1.m中的opening function中加入下列語句:

      setappdata(handles.guidata1,'Sai',1);

      在guidata2.m中的opening function 中寫入下列語句:

      setappdata(handles.guidata2,'Sai',2);

      下面我們分別在guidata1.fig guidata2.fig中放一個按鈕和靜態(tài)文本。接下來,在guidata1.m的按鈕中加入下列程序:

      guidata21=findobj('Tag','guidata2');if isempty(guidata21),errordlg('Not Open guidata2.fig','Error');

      guidata22=guidata2();

      Sai=getappdata(guidata22.guidata2,'Sai');

      set(handles.text1,'String',num2str(Sai));else

      guidata22=guihandles(guidata2);

      Sai=getappdata(guidata22.guidata2,'Sai');

      set(handles.text1,'String',num2str(Sai));end

      在guidata2.m中的按鈕中加入下列程序:

      guidata12=findobj('Tag','guidata1');%查看guidata1.fig是否打開 if isempty(guidata12), %如果沒有打開

      guidata11=guidata1();%打開guidata1.fig,并且把句柄給guidata11

      guidata11=guihandles(guidata11);%把guidata11轉(zhuǎn)為可用的gui句柄

      Sai=getappdata(guidata11.guidata1,'Sai');%讀取句柄guidata11中的名為Sai的變量值,可以和其%%%%%%%%%opening function 中的對比setappdata(handles.guidata1,'Sai',1)

      set(handles.text1,'String',num2str(Sai));else

      guidata11=guihandles(guidata1);

      Sai=getappdata(guidata11.guidata1,'Sai');

      set(handles.text1,'String',num2str(Sai));end

      然后隨便打開某個fig文件,比如打開guidata1.fig,然后點(diǎn)其中的按鈕,可以看到下面的靜態(tài)文本上顯示2,那么這個自然是從guidata2.fig中讀出來的。而且會自動打開guidata2.fig.這里其實(shí)是用findobj首先看是否已經(jīng)打開guidata1,如果沒有打開,則打開,并將句柄轉(zhuǎn)化為gui句柄。我在opening function 中是將名為Sai,值為1的變量存在了figure中,其實(shí)也可以存在其他控件中,比如在按鈕上加一個應(yīng)用程序數(shù)據(jù)其名為Sai,值為1,那么可以這么寫 setappdata(handles.pushbutton1,'Sai',1),然后隨時(shí)我們都可以通過getappdata setappdata來獲取或設(shè)置其值。

      而這里我推薦用這兩個命令,如果你用handles來共享數(shù)據(jù)的話,一是他可能會被程序的其他控件改變,二是它容易和引用控件時(shí)想混淆。

      第二篇:關(guān)于GUI的一點(diǎn)心得體會

      [Fig文件方式,即使用菜單File->New->GUI來設(shè)計(jì)界面] 首先值得注意的是,在低版本matlab上 制作的含GUI的m文件一般不能在高版本的matlab上面運(yùn)行,但是從7.0版開始改進(jìn)了一點(diǎn),我試過 6.5版的含GUI的m文件可以在 7.0版上運(yùn)行,但如果在7.0版上面修改過.fig文件,那么就不能回到6.5版上運(yùn)行了(顯示一堆錯誤,我沒看懂,不知道能否通過修改使之重新可在 6.5版上運(yùn)行,呵呵),而在7.0版上制作的含GUI的m文件就完全不能放到6.5版上運(yùn)行了(也是同樣的錯誤)。這可能是因?yàn)閙atlab各版本在 GUI上改動較大,所以都不支持向下兼容。也許兼容性差是使用GUI編寫程序的最大麻煩。

      其次,說說使用GUI的好處。不知道是否承襲了VC or BCB的習(xí)慣,我比較喜歡編寫完程序后按快捷鍵運(yùn)行(此時(shí)會自動保存m文件),但是,對于程序有輸入?yún)?shù)的 時(shí)候,如果不采用GUI方式,這顯然是行不通的――當(dāng)然了,可以在command window按“向上”鍵然后重新改寫你想要的參數(shù)。對于一些較大型的程序,正因?yàn)槲冶容^偏向于按F5運(yùn)行程序,所以我會選擇使用GUI方式。不過GUI 方式的好處就遠(yuǎn)不止于此了,它可以把幾個功能相關(guān)的模塊集中起來,使得不需要重新關(guān)閉、運(yùn)行就能得到不同的結(jié)果,便于比較;可以減少figure滿天飛的現(xiàn)象,這在matlab中尤為明顯;便于交互式地觀看不同的數(shù)據(jù),例如在我處理的fMRI問題中,希望觀看每個三維點(diǎn)對應(yīng)的時(shí)間序列,這時(shí)候需要提供交互式的選擇??不過,盡管GUI有很多好處,但是其缺點(diǎn)也是有的,除了上面提到的兼容性(移植性)以外,要管理、維護(hù)一個GUI界面也是比較麻煩的,相信有其他語言的界面設(shè)計(jì)經(jīng)驗(yàn)的朋友也知道這點(diǎn)。

      再 者,對GUI問題,說說我的一點(diǎn)經(jīng)驗(yàn)吧。其實(shí),matlab已經(jīng)在這方面改進(jìn)了不少,從控件的增加和教程的學(xué)習(xí)都可以看出來。例如6.5版本是沒有 Panel和Button Group這兩個控件的,在2006a版本中就新增了這兩個控件(這個好像7.0版就有了,不確定);教程方面,也使用了最為直觀的視頻教學(xué)方式,建議新手看看Creating a GUI with GUIDE 和Creating Graphical User Interfaces兩節(jié)。所以,操作上的細(xì)節(jié)我就不多講了,自己摸索一下就ok了。至于編程時(shí)最為關(guān)鍵的參數(shù)傳遞問題,可以參考本論壇或者仿真論壇上面的“函數(shù)結(jié)構(gòu)與參數(shù)傳遞”一文,作者整理得較完整,不過有點(diǎn)難懂。這里我簡單說一下吧:

      [轉(zhuǎn)cwit]關(guān)于參數(shù)傳遞的方法:

      1.在內(nèi)存中提?。孩?采用function的varargin和varargout傳送,② 存在handle的ApplicationData中,③保存在handles里面。當(dāng)然還有其他方法; 2.存在硬盤上,采用save和load;

      3.用全局變量,最次的辦法,有時(shí)卻是最好的辦法;

      我想,對于這里處理的GUI問題,一般不會用到save和load命令(要 從mat文件讀取數(shù)據(jù)初始化或者把數(shù)據(jù)存儲到mat文件中例外),“function的varargin和varargout傳送”的方法也不較少使用(因?yàn)閷τ诳丶幕卣{(diào)函數(shù),matlab規(guī)定了輸入?yún)?shù)為“hObject, eventdata, handles, varargin”,且一般沒有返回值,所以不同于自定義的函數(shù)),所以剩下的方法就只有三種了: 1.存在handle的ApplicationData中――利用setappdata函數(shù)將數(shù)據(jù)保存在對象的“ApplicationData”屬性中,利 用getappdata函數(shù)從對象的“ApplicationData”屬性中提取數(shù)據(jù),如果沒有定義,就為空。例如,假設(shè)figure的tag屬性是 figure1,則setappdata(handles.figure1,’A’,A)就可以把變量A存放到figure1的 “ApplicationData”屬性中,名字為A,而B = getappdata(handles.figure1,’A’)就可以把figure1的“ApplicationData”屬性中名字為A的變量賦給 B。setappdata和getappdata操作的對象,最好為figure_handle,便于管理和擴(kuò)展。Matlab的高級編程和對象控制,將 大量使用這兩個函數(shù)[轉(zhuǎn)自cwit];

      2.保存在handles里面――首先,這是訪問控件的常用方法,注意到Tag是唯一標(biāo)識控件的屬性,也就說,如果一個控件的Tag屬性是a,那么,在fig 對應(yīng)的m文件中,只要含有“handles”作為其輸入?yún)?shù)的函數(shù)中,就可以使用handles.a對該控件進(jìn)行訪問。既然句柄(相當(dāng)于其他語言中的指 針)已經(jīng)拿到手了,就任由“宰割”了(例如設(shè)置屬性、存取數(shù)據(jù)等就比較容易了);其次,可以利用這種方法把自定義的變量保存在handles里面進(jìn)行存取,這在matlab幫助的Creating a GUI with GUIDE一節(jié)中有具體介紹,不多說;

      3.用全局變量的方法――這是我進(jìn)行參數(shù)傳遞的常用方法,使用方法是:在兩個函數(shù)體(當(dāng)然可以是多個了,這里是主函數(shù)和子函數(shù)的意思)中使用前加入語句 “global A”,其中A是多個函數(shù)需要傳遞的變量名,多個變量用空格格開,句末不需要加分號。這種方法由于存放在硬盤上,存取速度會減慢,但是如果變量個數(shù)不多、或 者對該變量引用的函數(shù)不多,可以考慮用此辦法(我尚未能領(lǐng)會cwit兄所說“最次的辦法,有時(shí)卻是最好的辦法”之含義)。

      至于其他有關(guān)GUI命令、控件屬性和圖形屬性可以參考matlab的幫助,或者參考“GUI命令大全”、《精通GUI圖形界面編程》(這兩個本論壇有)、“Matlab圖形圖像屬性”、“GUI.rtf”(這兩個參見附件,后者下載后手動修改一下后綴名)。實(shí)際上,用得比較多的控件屬性不外乎以下幾種(高手例外):

      Visible屬性,例如axes、edit、button等,格式:set(handles.***, ‘Visible’, ‘on’);或者set(handles.***, ‘Visible’, ‘off’);

      String屬性,例如edit、text等,格式:str=get(handles.***, ‘String’)或set(handles.***,’String’,str);Enable屬性,例如edit、button、text等,格式:set(handles.***, ‘Enable’, ‘on’);或者set(handles.***, ‘Enable’, ‘off’);

      Value屬性,例如radio button、check box等,格式:a=get(handles.***, ‘Value’)或set(handles.***,’Value’,1);或set(handles.***,’Value’,0);

      留意一下響應(yīng)函數(shù)的注釋部分,有時(shí)候會得到提示的。例如,我的 matlab 2007a 中,在設(shè)計(jì)界面上增加了 listbox 控件后,m 文件的對應(yīng)回調(diào)函數(shù)處顯示如下:

      %---Executes on selection change in listbox1.function listbox1_Callback(hObject, eventdata, handles)% hObject handle to listbox1(see GCBO)% eventdata reserved100*k/N)<= 1e-003 waitbar(k/N);i = i + step;end 其中i是控制進(jìn)度條在何處刷新,k是程序的循環(huán)變量,N是程序循環(huán)的總次數(shù)。

      使用 uicontrol 方式實(shí)現(xiàn)進(jìn)度條的示例: 復(fù)制內(nèi)容到剪貼板 代碼: figure;e1 = uicontrol(gcf,'style','edit','BackgroundColor','w',...'unit','normalized','position',[0.35,0.6,0.02,0.25]);e2 = uicontrol(gcf,'style','edit','BackgroundColor','r',...'unit','normalized','position',[0.3525,0.6,0.015,0.01]);drawnow;n = 1000;ii = 1;for i = 1:0.01:n if(ii-100*i/n)<= 1e-003 set(e2,'position',[0.3525,0.6,0.015,0.01+0.24*i/n]);drawnow;ii = ii + 1;end end 【附錄】轉(zhuǎn)自cwit兄:

      m文件與fig文件創(chuàng)建figure的十大差異——用代碼寫figure,并不是麻煩。如果你習(xí)慣了,或者熟悉了,會發(fā)現(xiàn)用代碼實(shí)現(xiàn)guide編程,比GUI方便很多,功能也很強(qiáng)大。用m文件實(shí)現(xiàn)guide編程,相比GUI編程有幾大差異: 1.代碼可復(fù)用,節(jié)省成本;

      2.GUI不能靈活創(chuàng)建uimenu,并且不能編輯其所有屬性; 3.GUI還沒有實(shí)現(xiàn)創(chuàng)建uitoolbox; 4.GUI不能創(chuàng)建所有axes的子對象;

      5.寫界面也有一些算法,在GUI中無法實(shí)現(xiàn)。而用m文件就可以實(shí)現(xiàn)在不同窗口尺寸下給對象以合適的位置; 6.m文件可以生成非常復(fù)雜的界面;

      7.采用GUI編程,代碼編譯后依賴于*.fig文件; 8.m文件可以實(shí)現(xiàn)組件;

      9.m文件創(chuàng)建的對象,可以方便的在handle中存取數(shù)據(jù); 10.m文件可以將創(chuàng)建對象代碼與動作執(zhí)行代碼很好的結(jié)合起來。

      【注】關(guān)于兩種方式的運(yùn)行:

      對于fig文件方式:fig文件記錄的是控件的布局和屬性等資源信息,m文件記錄的是控件的響應(yīng)消息(這是個人理解,更準(zhǔn)確的介紹請參閱有關(guān)GUI的書籍,我懶得去查了,呵呵),兩者缺一不可。所以,不能通過打開fig文件(如菜單中的Open命令)來運(yùn)行該GUI,這種方式的運(yùn)行方法有兩種:打開該GUI對應(yīng)的m文件,然后像普通m文件那樣運(yùn)行;打開該GUI的設(shè)計(jì)界面(菜單操作:File?New?GUI?Open Existing GUI,打開 fig 文件),然后點(diǎn)擊設(shè)計(jì)界面工具欄上的那個像箭頭一樣的按鈕

      對于m文件方式:像普通m文件那樣運(yùn)行就可以了

      先建立兩個GUI,一個名為guidata1.fig guidata2.fig,它們的tag屬性也分別為guidata1,guidata2。然后在guidata1.m中的opening function中加入下列語句:

      setappdata(handles.guidata1,'Sai',1);

      在guidata2.m中的opening function 中寫入下列語句:

      setappdata(handles.guidata2,'Sai',2);

      下面我們分別在guidata1.fig guidata2.fig中放一個按鈕和靜態(tài)文本。接下來,在guidata1.m的按鈕中加入下列程序:

      guidata21=findobj('Tag','guidata2');if isempty(guidata21),errordlg('Not Open guidata2.fig','Error');

      guidata22=guidata2();

      Sai=getappdata(guidata22.guidata2,'Sai');

      set(handles.text1,'String',num2str(Sai));else

      guidata22=guihandles(guidata2);

      Sai=getappdata(guidata22.guidata2,'Sai');

      set(handles.text1,'String',num2str(Sai));end

      在guidata2.m中的按鈕中加入下列程序:

      guidata12=findobj('Tag','guidata1');%查看guidata1.fig是否打開 if isempty(guidata12), %如果沒有打開

      guidata11=guidata1();%打開guidata1.fig,并且把句柄給guidata11

      guidata11=guihandles(guidata11);%把guidata11轉(zhuǎn)為可用的gui句柄

      Sai=getappdata(guidata11.guidata1,'Sai');%讀取句柄guidata11中的名為Sai的變量值,可以和其%%%%%%%%%opening function 中的對比setappdata(handles.guidata1,'Sai',1)

      set(handles.text1,'String',num2str(Sai));else

      guidata11=guihandles(guidata1);

      Sai=getappdata(guidata11.guidata1,'Sai');

      set(handles.text1,'String',num2str(Sai));end

      然后隨便打開某個fig文件,比如打開guidata1.fig,然后點(diǎn)其中的按鈕,可以看到下面的靜態(tài)文本上顯示2,那么這個自然是從guidata2.fig中讀出來的。而且會自動打開guidata2.fig.這里其實(shí)是用findobj首先看是否已經(jīng)打開guidata1,如果沒有打開,則打開,并將句柄轉(zhuǎn)化為gui句柄。我在opening function 中是將名為Sai,值為1的變量存在了figure中,其實(shí)也可以存在其他控件中,比如在按鈕上加一個應(yīng)用程序數(shù)據(jù)其名為Sai,值為1,那么可以這么寫 setappdata(handles.pushbutton1,'Sai',1),然后隨時(shí)我們都可以通過getappdata setappdata來獲取或設(shè)置其值。

      而這里我推薦用這兩個命令,如果你用handles來共享數(shù)據(jù)的話,一是他可能會被程序的其他控件改變,二是它容易和引用控件時(shí)想混淆。

      第三篇:關(guān)于GUI的一點(diǎn)心得體會

      [Fig文件方式,即使用菜單File->New->GUI來設(shè)計(jì)界面] 首先值得注意的是,在低版本matlab上 制作的含GUI的m文件一般不能在高版本的matlab上面運(yùn)行,但是從7.0版開始改進(jìn)了一點(diǎn),我試過 6.5版的含GUI的m文件可以在 7.0版上運(yùn)行,但如果在7.0版上面修改過.fig文件,那么就不能回到6.5版上運(yùn)行了(顯示一堆錯誤,我沒看懂,不知道能否通過修改使之重新可在 6.5版上運(yùn)行,呵呵),而在7.0版上制作的含GUI的m文件就完全不能放到6.5版上運(yùn)行了(也是同樣的錯誤)。這可能是因?yàn)閙atlab各版本在 GUI上改動較大,所以都不支持向下兼容。也許兼容性差是使用GUI編寫程序的最大麻煩。

      其次,說說使用GUI的好處。不知道是否承襲了VC or BCB的習(xí)慣,我比較喜歡編寫完程序后按快捷鍵運(yùn)行(此時(shí)會自動保存m文件),但是,對于程序有輸入?yún)?shù)的 時(shí)候,如果不采用GUI方式,這顯然是行不通的――當(dāng)然了,可以在command window按“向上”鍵然后重新改寫你想要的參數(shù)。對于一些較大型的程序,正因?yàn)槲冶容^偏向于按F5運(yùn)行程序,所以我會選擇使用GUI方式。不過GUI 方式的好處就遠(yuǎn)不止于此了,它可以把幾個功能相關(guān)的模塊集中起來,使得不需要重新關(guān)閉、運(yùn)行就能得到不同的結(jié)果,便于比較;可以減少figure滿天飛的現(xiàn)象,這在matlab中尤為明顯;便于交互式地觀看不同的數(shù)據(jù),例如在我處理的fMRI問題中,希望觀看每個三維點(diǎn)對應(yīng)的時(shí)間序列,這時(shí)候需要提供交互式的選擇??不過,盡管GUI有很多好處,但是其缺點(diǎn)也是有的,除了上面提到的兼容性(移植性)以外,要管理、維護(hù)一個GUI界面也是比較麻煩的,相信有其他語言的界面設(shè)計(jì)經(jīng)驗(yàn)的朋友也知道這點(diǎn)。

      再 者,對GUI問題,說說我的一點(diǎn)經(jīng)驗(yàn)吧。其實(shí),matlab已經(jīng)在這方面改進(jìn)了不少,從控件的增加和教程的學(xué)習(xí)都可以看出來。例如6.5版本是沒有 Panel和Button Group這兩個控件的,在2006a版本中就新增了這兩個控件(這個好像7.0版就有了,不確定);教程方面,也使用了最為直觀的視頻教學(xué)方式,建議新手看看Creating a GUI with GUIDE 和Creating Graphical User Interfaces兩節(jié)。所以,操作上的細(xì)節(jié)我就不多講了,自己摸索一下就ok了。至于編程時(shí)最為關(guān)鍵的參數(shù)傳遞問題,可以參考本論壇或者仿真論壇上面的“函數(shù)結(jié)構(gòu)與參數(shù)傳遞”一文,作者整理得較完整,不過有點(diǎn)難懂。這里我簡單說一下吧:

      [轉(zhuǎn)cwit]關(guān)于參數(shù)傳遞的方法:

      1.在內(nèi)存中提?。孩?采用function的varargin和varargout傳送,② 存在handle的ApplicationData中,③保存在handles里面。當(dāng)然還有其他方法; 2.存在硬盤上,采用save和load;

      3.用全局變量,最次的辦法,有時(shí)卻是最好的辦法;

      我想,對于這里處理的GUI問題,一般不會用到save和load命令(要 從mat文件讀取數(shù)據(jù)初始化或者把數(shù)據(jù)存儲到mat文件中例外),“function的varargin和varargout傳送”的方法也不較少使用(因?yàn)閷τ诳丶幕卣{(diào)函數(shù),matlab規(guī)定了輸入?yún)?shù)為“hObject, eventdata, handles, varargin”,且一般沒有返回值,所以不同于自定義的函數(shù)),所以剩下的方法就只有三種了: 1.存在handle的ApplicationData中――利用setappdata函數(shù)將數(shù)據(jù)保存在對象的“ApplicationData”屬性中,利 用getappdata函數(shù)從對象的“ApplicationData”屬性中提取數(shù)據(jù),如果沒有定義,就為空。例如,假設(shè)figure的tag屬性是 figure1,則setappdata(handles.figure1,’A’,A)就可以把變量A存放到figure1的 “ApplicationData”屬性中,名字為A,而B = getappdata(handles.figure1,’A’)就可以把figure1的“ApplicationData”屬性中名字為A的變量賦給 B。setappdata和getappdata操作的對象,最好為figure_handle,便于管理和擴(kuò)展。Matlab的高級編程和對象控制,將 大量使用這兩個函數(shù)[轉(zhuǎn)自cwit];

      2.保存在handles里面――首先,這是訪問控件的常用方法,注意到Tag是唯一標(biāo)識控件的屬性,也就說,如果一個控件的Tag屬性是a,那么,在fig 對應(yīng)的m文件中,只要含有“handles”作為其輸入?yún)?shù)的函數(shù)中,就可以使用handles.a對該控件進(jìn)行訪問。既然句柄(相當(dāng)于其他語言中的指 針)已經(jīng)拿到手了,就任由“宰割”了(例如設(shè)置屬性、存取數(shù)據(jù)等就比較容易了);其次,可以利用這種方法把自定義的變量保存在handles里面進(jìn)行存取,這在matlab幫助的Creating a GUI with GUIDE一節(jié)中有具體介紹,不多說;

      3.用全局變量的方法――這是我進(jìn)行參數(shù)傳遞的常用方法,使用方法是:在兩個函數(shù)體(當(dāng)然可以是多個了,這里是主函數(shù)和子函數(shù)的意思)中使用前加入語句 “global A”,其中A是多個函數(shù)需要傳遞的變量名,多個變量用空格格開,句末不需要加分號。這種方法由于存放在硬盤上,存取速度會減慢,但是如果變量個數(shù)不多、或 者對該變量引用的函數(shù)不多,可以考慮用此辦法(我尚未能領(lǐng)會cwit兄所說“最次的辦法,有時(shí)卻是最好的辦法”之含義)。

      至于其他有關(guān)GUI命令、控件屬性和圖形屬性可以參考matlab的幫助,或者參考“GUI命令大全”、《精通GUI圖形界面編程》(這兩個本論壇有)、“Matlab圖形圖像屬性”、“GUI.rtf”(這兩個參見附件,后者下載后手動修改一下后綴名)。實(shí)際上,用得比較多的控件屬性不外乎以下幾種(高手例外):

      Visible屬性,例如axes、edit、button等,格式:set(handles.***, ‘Visible’, ‘on’);或者set(handles.***, ‘Visible’, ‘off’);

      String屬性,例如edit、text等,格式:str=get(handles.***, ‘String’)或set(handles.***,’String’,str);Enable屬性,例如edit、button、text等,格式:set(handles.***, ‘Enable’, ‘on’);或者set(handles.***, ‘Enable’, ‘off’);

      Value屬性,例如radio button、check box等,格式:a=get(handles.***, ‘Value’)或set(handles.***,’Value’,1);或set(handles.***,’Value’,0);

      留意一下響應(yīng)函數(shù)的注釋部分,有時(shí)候會得到提示的。例如,我的 matlab 2007a 中,在設(shè)計(jì)界面上增加了 listbox 控件后,m 文件的對應(yīng)回調(diào)函數(shù)處顯示如下:

      %---Executes on selection change in listbox1.function listbox1_Callback(hObject, eventdata, handles)% hObject handle to listbox1(see GCBO)% eventdata reserved100*k/N)<= 1e-003 waitbar(k/N);i = i + step;end 其中i是控制進(jìn)度條在何處刷新,k是程序的循環(huán)變量,N是程序循環(huán)的總次數(shù)。

      使用 uicontrol 方式實(shí)現(xiàn)進(jìn)度條的示例: 復(fù)制內(nèi)容到剪貼板 代碼: figure;e1 = uicontrol(gcf,'style','edit','BackgroundColor','w',...'unit','normalized','position',[0.35,0.6,0.02,0.25]);e2 = uicontrol(gcf,'style','edit','BackgroundColor','r',...'unit','normalized','position',[0.3525,0.6,0.015,0.01]);drawnow;n = 1000;ii = 1;for i = 1:0.01:n if(ii-100*i/n)<= 1e-003 set(e2,'position',[0.3525,0.6,0.015,0.01+0.24*i/n]);drawnow;ii = ii + 1;end end 【附錄】轉(zhuǎn)自cwit兄:

      m文件與fig文件創(chuàng)建figure的十大差異——用代碼寫figure,并不是麻煩。如果你習(xí)慣了,或者熟悉了,會發(fā)現(xiàn)用代碼實(shí)現(xiàn)guide編程,比GUI方便很多,功能也很強(qiáng)大。用m文件實(shí)現(xiàn)guide編程,相比GUI編程有幾大差異: 1.代碼可復(fù)用,節(jié)省成本;

      2.GUI不能靈活創(chuàng)建uimenu,并且不能編輯其所有屬性; 3.GUI還沒有實(shí)現(xiàn)創(chuàng)建uitoolbox; 4.GUI不能創(chuàng)建所有axes的子對象;

      5.寫界面也有一些算法,在GUI中無法實(shí)現(xiàn)。而用m文件就可以實(shí)現(xiàn)在不同窗口尺寸下給對象以合適的位置; 6.m文件可以生成非常復(fù)雜的界面;

      7.采用GUI編程,代碼編譯后依賴于*.fig文件; 8.m文件可以實(shí)現(xiàn)組件;

      9.m文件創(chuàng)建的對象,可以方便的在handle中存取數(shù)據(jù); 10.m文件可以將創(chuàng)建對象代碼與動作執(zhí)行代碼很好的結(jié)合起來。

      【注】關(guān)于兩種方式的運(yùn)行:

      對于fig文件方式:fig文件記錄的是控件的布局和屬性等資源信息,m文件記錄的是控件的響應(yīng)消息(這是個人理解,更準(zhǔn)確的介紹請參閱有關(guān)GUI的書籍,我懶得去查了,呵呵),兩者缺一不可。所以,不能通過打開fig文件(如菜單中的Open命令)來運(yùn)行該GUI,這種方式的運(yùn)行方法有兩種:打開該GUI對應(yīng)的m文件,然后像普通m文件那樣運(yùn)行;打開該GUI的設(shè)計(jì)界面(菜單操作:File?New?GUI?Open Existing GUI,打開 fig 文件),然后點(diǎn)擊設(shè)計(jì)界面工具欄上的那個像箭頭一樣的按鈕

      對于m文件方式:像普通m文件那樣運(yùn)行就可以了

      先建立兩個GUI,一個名為guidata1.fig guidata2.fig,它們的tag屬性也分別為guidata1,guidata2。然后在guidata1.m中的opening function中加入下列語句:

      setappdata(handles.guidata1,'Sai',1);

      在guidata2.m中的opening function 中寫入下列語句:

      setappdata(handles.guidata2,'Sai',2);

      下面我們分別在guidata1.fig guidata2.fig中放一個按鈕和靜態(tài)文本。接下來,在guidata1.m的按鈕中加入下列程序:

      guidata21=findobj('Tag','guidata2');if isempty(guidata21),errordlg('Not Open guidata2.fig','Error');

      guidata22=guidata2();

      Sai=getappdata(guidata22.guidata2,'Sai');

      set(handles.text1,'String',num2str(Sai));else

      guidata22=guihandles(guidata2);

      Sai=getappdata(guidata22.guidata2,'Sai');

      set(handles.text1,'String',num2str(Sai));end

      在guidata2.m中的按鈕中加入下列程序:

      guidata12=findobj('Tag','guidata1');%查看guidata1.fig是否打開 if isempty(guidata12), %如果沒有打開

      guidata11=guidata1();%打開guidata1.fig,并且把句柄給guidata11

      guidata11=guihandles(guidata11);%把guidata11轉(zhuǎn)為可用的gui句柄

      Sai=getappdata(guidata11.guidata1,'Sai');%讀取句柄guidata11中的名為Sai的變量值,可以和其%%%%%%%%%opening function 中的對比setappdata(handles.guidata1,'Sai',1)

      set(handles.text1,'String',num2str(Sai));else

      guidata11=guihandles(guidata1);

      Sai=getappdata(guidata11.guidata1,'Sai');

      set(handles.text1,'String',num2str(Sai));end

      然后隨便打開某個fig文件,比如打開guidata1.fig,然后點(diǎn)其中的按鈕,可以看到下面的靜態(tài)文本上顯示2,那么這個自然是從guidata2.fig中讀出來的。而且會自動打開guidata2.fig.這里其實(shí)是用findobj首先看是否已經(jīng)打開guidata1,如果沒有打開,則打開,并將句柄轉(zhuǎn)化為gui句柄。我在opening function 中是將名為Sai,值為1的變量存在了figure中,其實(shí)也可以存在其他控件中,比如在按鈕上加一個應(yīng)用程序數(shù)據(jù)其名為Sai,值為1,那么可以這么寫 setappdata(handles.pushbutton1,'Sai',1),然后隨時(shí)我們都可以通過getappdata setappdata來獲取或設(shè)置其值。

      而這里我推薦用這兩個命令,如果你用handles來共享數(shù)據(jù)的話,一是他可能會被程序的其他控件改變,二是它容易和引用控件時(shí)想混淆。

      第四篇:gui谷子解讀

      一、何謂縱橫術(shù)

      《史記六十七卷·仲尼弟子列傳》

      ——存魯、亂齊、破吳、疆晉而霸越,史稱“一石五鳥” ① 游說的前提──量權(quán) ② 游說的出發(fā)點(diǎn)──揣情 ③ 游說的順利發(fā)展──摩意 ④ 游說成功的關(guān)鍵──權(quán)謀

      ●縱橫術(shù)就是把“知己知彼,勝乃不殆”的策略具體運(yùn)用到人類的思維心理層面上,內(nèi)設(shè)計(jì)謀,外陳言辭,動之以形勢,誘之以利害,所展開的思維心理戰(zhàn)術(shù)。●縱橫術(shù)不是呈一時(shí)口舌之辯、轉(zhuǎn)丸其辭的詭辯術(shù),而是融道(原則)、法(方法)、術(shù)(技巧)為一體的經(jīng)典的人類行為理論。

      二、理解和運(yùn)用縱橫術(shù)的原則 ●道、法、術(shù)相結(jié)合的原則

      ——原理、原則;法則、方法;技巧 ●言、情、智相結(jié)合的原則 ⊙“泣下沾襟”

      ——言貴動其情,情貴動其心 ⊙“誘師出屋”

      ——智貴善其謀。智澤于內(nèi),言溢于外 ●《戰(zhàn)國策》與《鬼谷子》對照研讀

      三、縱橫術(shù)選講 1.捭闔術(shù)

      捭闔術(shù)是以事物和人物的陰陽類別為法則而展開的言談?wù)Z默之術(shù)。其目標(biāo)是料對方之實(shí)情,最大限度地獲取對方的信誠。所謂“捭之者,料其情也;闔之者,結(jié)其誠也”。

      “捭”的字面意思是開、言,引申為使之開口說話,或者說服對方接納己方觀點(diǎn)。故曰:“捭者,或捭而出之,或捭而內(nèi)之?!?/p>

      “闔”的字面意思是關(guān)、默,引申為默認(rèn)或者拒絕。故曰:“闔者,或闔而取之,或闔而去之?!?/p>

      捭為陽,在明處;闔為陰,在暗處。調(diào)動對方說話之后,對對方所言的情之真?zhèn)我抵杏兴∩?;讓對方確信什么,放棄或忽略什么,也在暗中操作。總論的性質(zhì)

      捭闔篇說:“口者,心之門戶也。心者,神之主也。志意、喜欲、思慮、智謀,此皆由門戶出入。故關(guān)之以捭闔,制之以出入?!?A:方法

      1.目標(biāo):“料其情,結(jié)其誠”

      ⊙料其情:開其金口,觀其心志 ⊙結(jié)其誠:取同去異,結(jié)其信誠

      ○孔子說:“人心險(xiǎn)于山川,難于知天?!保ā肚f子·列御寇》)怎樣打開言談的局面? 怎樣消除分歧,結(jié)其信誠? 2.一般方法

      ①明類:縱向的類與橫向的類 ●縱向的類

      ⊙信任感與認(rèn)同感等 ⊙制造角色與惡性循環(huán) ●橫向的類

      ⊙好奇心、同情心、恐懼感等 ⊙怎樣研究橫向的類 ? ② 需要理論

      ⊙陽類:長生、安樂、富貴、尊榮、顯名、愛好、財(cái)利、得意、喜欲,以這一類有利的事物來進(jìn)行游說稱為“陽”、稱為“始”

      ⊙陰類:死亡、憂患、貧賤、苦辱、棄損、亡利、失意、有害、刑戮、誅罰,以這一類不利的事物來進(jìn)行游說稱為“陰”、稱為“終”

      ——馬斯洛:生理、安全、愛與歸屬、尊重、認(rèn)知、美感與自我實(shí)現(xiàn)。3.具體方法

      ①“言善以始其事”;“言惡以終為謀”

      ●動其行:強(qiáng)調(diào)有利的方面誘使對方行動 ●止其謀:強(qiáng)調(diào)不利的方面阻止對方行動 ②“與陽言者依崇高”;“與陰言者依卑小” ●“謀之于陽”:以崇高為基調(diào),以高求大 ●“謀之于陰”:以卑小為基調(diào),以下求小

      ③ “微排其所言而捭反之,以求其實(shí),貴得其指” ——“排抑捭反”與“混說損益”(《內(nèi)揵篇》)第一步:開而示之同,隱而藏之異。——“陽動而行,陰止而藏” 第二步:借“取同”而“去異”?!瓣杽佣?,陰隱而入” 第三步:求所言利害之信?!耙躁柷箨帲缘乱病?——反面(不可行性)論證 B.技巧

      ●求所言利害之信的說服技巧 ⊙語言:以第三者立場陳言

      ⊙心理:聰明的賣馬人(《燕策二》)⊙邏輯:兩面論證的可能性—論辯 ——晉元帝與明帝司馬紹

      ——“黃金準(zhǔn)則”與鄧析的 “兩可之說”; “濠梁之辯”與“秦趙之約” 死局──僵局──和局 C:原則──道術(shù)與術(shù)道

      ●“捭闔者,以變動陰陽,四時(shí)開閉,以化萬物”;“捭闔之道,以陰陽試之”;“益損、去就、倍反,皆以陰陽御其事”。(《捭闔》)

      ●“欲捭之,貴周;欲闔之,貴密。周密之貴微,而與道相追?!保ā掇汴H》)2.反應(yīng)術(shù) 捭闔術(shù)講的是如何以有聲的語言探測對方的實(shí)情、結(jié)取對方的信誠,而反應(yīng)術(shù)則進(jìn)一步透過有聲語言的表層,展開“以無形求有聲”的思維心理戰(zhàn)術(shù),其目標(biāo)是“得其情詐”。

      “反”就是反觀:反觀歷史、反觀對方;“應(yīng)”亦作“覆”,有“覆驗(yàn)”和“應(yīng)驗(yàn)”兩層意思。所謂“反以知彼,覆以知己”,“反以觀往,覆以驗(yàn)來”。A:方法

      1.目標(biāo):“聽真?zhèn)?,知同異,得其情詐也?!?——《呂氏春秋·淫辭》說:“非辭無以相期” 又說:“從辭則亂”?!兑住は缔o》說:“將叛者,其辭慚;中心疑者,其辭歧;吉人之辭寡;躁人之辭多;誣善之人,其辭游;失其守者,其辭屈?!?2.察言觀色:以其見者而知其隱者

      ——東郭牙善辨君子“三色”:鐘鼓之色、衰绖之色、兵革之色。(《管子·小問》)3.象比之法:以其隱者而知其見者

      ——“象其事,比其辭” ; “以無形求有聲” ——情、理、類隱而無形 ——“同聲相呼,實(shí)理同歸”

      根據(jù)事物的常理、常規(guī)和人物的常態(tài)、常情來推斷情之真?zhèn)?。對于違反常理、常規(guī)和常態(tài)、常情的現(xiàn)象,要善于冷靜觀察,其中大多有詐。

      ——明智的南文子(《宋、衛(wèi)策》)

      ——反常的鄭袖(《楚策四》)B:技巧

      1.釣情術(shù):“釣語合事,得人實(shí)也。其猶張置網(wǎng)而取獸也?!?⊙餌釣:物餌與人餌

      ——齊王后死,《齊策三》 ——申不害答韓王,《韓策一》 ——唐·趙蕤《長短經(jīng)·釣情篇》:物釣、言釣、事釣、志釣、視釣、賢釣、色釣7種。

      ⊙善釣:善釣者不用餌,用網(wǎng)。這個網(wǎng)就是以道為綱的反觀術(shù)。

      2.反觀術(shù):“反以觀往,覆以驗(yàn)今。反以知古,覆以知今。反以知彼,覆以知己。” ⊙“變象比,必有反辭?!?/p>

      ⊙“善反聽者,乃變鬼神以得其情?!?——反聽、反觀、反說與“知己知彼” 反聽:莊王伐陳,《呂氏春秋·似順》 反觀:劉邦封雍齒,《經(jīng)世奇謀·紓禍》 反說:陳軫說昭陽,《齊策一》

      ——帶指針的跪毯 C:原則──道術(shù)與術(shù)道

      ●“古之大化者,乃與無形俱生?!薄笆掠蟹炊酶舱撸ト酥庖??!保ā斗磻?yīng)篇》)●“己不先定,牧人不正;事用不巧,是謂忘情失道?!保ā斗磻?yīng)篇》)——齊桓公的悲慘結(jié)局,《智囊·知微》

      3.內(nèi)揵術(shù)

      捭闔術(shù)講的是如何“料其情,結(jié)其誠”,反應(yīng)術(shù)講的是如何“察言見情”、“得其情詐”。內(nèi)揵術(shù)講的則是如何建立和不斷鞏固游說者與游說對象之間的親密關(guān)系。

      “內(nèi)”,入也、納也。引申為以言辭入結(jié)于君;“揵”,關(guān)門之木,關(guān)合、緊閉。引申為以謀略內(nèi)結(jié)于君。

      A:方法

      1.目標(biāo):“出無間,入無朕,獨(dú)往獨(dú)來,莫之能止?!?⊙ “伙伴關(guān)系”與“情人關(guān)系” “君臣上下之事,有遠(yuǎn)而親,近而疏。……日進(jìn)前而不御,遙聞聲而相思。”(《內(nèi)揵》)

      2.為什么追求這一目標(biāo)? ○感情親疏對理智判斷的影響 ——“信而后諫”(《論語·子張》)

      ——“周澤既渥,計(jì)而不疑,引爭而不罪?!保ā俄n非子·說難》)○兜售智謀,高風(fēng)險(xiǎn)性的職業(yè)。3.怎樣追求這一目標(biāo)?

      ——四種結(jié)交方式:“結(jié)以道德、結(jié)以黨友、結(jié)以財(cái)貨、結(jié)以采色” ○道德:道術(shù)(智)與仁德(心)。內(nèi)結(jié)為帝王之師,外應(yīng)以良臣之名。

      ○黨友:同黨(志、意)與朋友(情、趣)。內(nèi)結(jié)為君王之友,外應(yīng)以同黨之名?!鹭?cái)貨:金玉珠帛等(私欲)○采色:土地和美女(私欲)B:技巧

      1.進(jìn)說之陰柔術(shù)

      ——“欲說者務(wù)隱度,計(jì)事者務(wù)循順。陰慮可否,明言得失,以御其志?!? ⊙用其意、御其志

      ⊙陰隱與柔順(不觸逆鱗)○“十誡與九說”(《韓非子·說難》)2.計(jì)事之因化術(shù)

      ——“方來應(yīng)時(shí),以合其謀。詳思來揵,往應(yīng)時(shí)當(dāng)也。夫內(nèi)有不合者,不可施行也。乃揣切時(shí)宜,從便所為,以求其變。以變求內(nèi)者,若管取揵?!?⊙往應(yīng)時(shí)當(dāng):“時(shí)”與“位”

      ⊙以變求內(nèi):“志同、氣順、心合 ”。C:原則──道術(shù)與術(shù)道

      ●“不見其類而說之者,見逆;不得其情而說之者,見非?!?●“揣切時(shí)宜,從便所為,以求其變?!?●“環(huán)轉(zhuǎn)因化,莫知所為,退為大儀?!?——智伯與郄疵、智果(《趙策一》)4.揣術(shù)與摩術(shù)

      揣術(shù)與摩術(shù)進(jìn)一步將揣情的空間范圍拉大,把揣情與量權(quán)和摩意結(jié)合起來考慮?!按А庇辛繖?quán)和揣情兩種含義。

      “摩”即“觸摩”之意,謂以事謀去順合所說服的對象,并誘使他作出回應(yīng)或者付諸行動。所以說:“摩者,揣之術(shù)也?!?A.方法

      1.目標(biāo):“知強(qiáng)弱輕重之稱、隱匿變化之動靜”

      “古之善用天下者,必量天下之權(quán),而揣諸侯之情。量權(quán)不審,不知強(qiáng)弱輕重之稱;揣情不審,不知隱匿變化之動靜?!?“計(jì)國事者,則當(dāng)審權(quán)量;說人主,則當(dāng)審揣情。謀慮情欲,必出于此。……故雖有先王之道,圣智之謀,非揣情隱匿,無可索之。此謀之大本,而說之法也?!保ā洞罚?/p>

      2.量權(quán)、揣情、摩意:謀事的戰(zhàn)略戰(zhàn)術(shù) ——諸葛亮的“隆中對”,劉備“空手套白狼”,占據(jù)荊州和益州,《資治通鑒65卷》 ——郭嘉的“十勝論”,曹操以弱勝強(qiáng),打敗袁紹,《資治通鑒62卷》 ——耳聽八方的日本商人 ——8年秘書與龍行天下 B:技巧 1.極情術(shù)

      ⊙“以其甚喜之時(shí),往而極其欲也。”“以其甚懼之時(shí),往而極其惡也?!?——楚成王改立太子,《智囊·狡黠》

      ⊙“感動而不知其變者,乃且錯其人勿與語,而更問其所親,知其所安?!?——韓非子講的《韓非子·八奸》

      2.摩意術(shù):“微摩之以其所欲,測而探之……是謂塞窖、匿端、隱貌、逃情,而人不知,故成其事而無患。”

      ——“古之善摩者,如操鉤而臨深淵,餌而投之,必得魚焉?!保ā赌ζ罚选捌秸?,靜也”:以平正的方式使之靜,不輕舉妄動。⊙“正者,直也”:以正當(dāng)?shù)姆绞绞怪钡蓝??!选跋舱撸瑦傄病保阂詫Ψ剿灿氖虑槭顾麣g悅。⊙“怒者,動也”:以對方所厭惡的事情使他沖動?!选懊撸l(fā)也”:通過顯揚(yáng)對方的名聲來誘動對方。⊙“行者,成也”:協(xié)助對方行動,使之獲得成功。⊙“廉者,潔也”:以貞潔的行為誘動對方

      ⊙“信者,期也”:以誠信的方式使對方所期待的事情兌現(xiàn)?!选袄撸笠病保河美嬷抡T使對方去追求 ⊙“卑者,諂也”:以低下的言辭或行為打動對方 ——幸運(yùn)的奧迪:行者,成也;信者,期也。

      ——《文匯讀書周報(bào)》,遭遇荷蘭“紅寶書”:卑者,諂也 C:原則──揣、摩之道

      ●“揣情飾言,成文章而后論之?!?●“摩之以其類”,“摩之以其欲”?!瘛暗馈?shù)與時(shí)相偶者也。”

      ——鄭武公伐胡,《韓非子·說難》

      ——江乙善謀,安陵君(楚成王的寵臣安繵)知時(shí),《楚策一》

      5.抵巇術(shù)

      抵為抵塞,巇為罅隙、裂縫。抵巇就是把有缺漏的地方堵塞住。抵巇術(shù)講的是如何彌縫事情的罅隙,使事情免于潰敗的技術(shù)。

      “物有自然,事有離合?!薄白蕴斓刂想x終始,必有巇隙,不可不察也。察之以捭闔,能用此道,圣人也?!?/p>

      ——墻崩因隙,器壞因釁。因隙釁而擊實(shí)之,則墻器不敗。若不可救,則因而除之,另有所營置。人事也是如此。A:方法

      1.目標(biāo):能因能循,為天地守神。2.“因”:危險(xiǎn)的兆頭剛萌生便覺察之

      “事之危也,圣人知之,獨(dú)保其用,因化說事,通達(dá)計(jì)謀,以識細(xì)微。經(jīng)起秋毫之末,揮之于太山之本。”

      ——縫隙乃禍之端始 3.“循”:因釁隙而救之或除之

      “圣人者,天地之使也。世無可抵,則深隱而待時(shí);時(shí)有可抵,則為之謀?!?/p>

      ——縫隙乃謀生之地 4.何謂萌芽巇罅?

      “天下紛錯,上無明主,公侯無道德,則小人讒賊,賢人不用,圣人竄匿,貪利詐偽者作,君臣相惑,土崩瓦解而相伐射,父子離散,乖亂反目,是謂萌芽巇罅。圣人見萌芽巇罅,則抵之以法。” 5.抵巇五法

      ⊙抵而塞:隙漏如果由內(nèi)部引起,則抵而塞(塞住)⊙抵而卻:隙漏如果由外部引起,則抵而卻(擋退)⊙抵而息:隙漏如果由下面引起,則抵而息(平息)⊙抵而匿:隙漏如果由上面引起,則抵而匿(藏匿)⊙抵而得:隙漏如果無法救治,則抵而得(取而代之)

      ——這五者可歸為兩類:抵而塞之與抵而得之。事情還有挽救的余地,則抵而塞之;若不可挽救,則抵而得之。B:技巧

      ⊙如何因應(yīng)事物發(fā)展的變隙而加以防治 ⊙如何因應(yīng)事物發(fā)展的變隙而使之潰敗 ——如何設(shè)置計(jì)謀的技巧,參見謀術(shù) C:原則──道術(shù)與術(shù)道

      ●“物有自然,事有合離。有近而不可見,遠(yuǎn)而可知。近而不可見者,不察其辭也;遠(yuǎn)而可知者,反往以驗(yàn)來也?!?/p>

      ●“兆萌牙孽之謀,皆由抵巇,抵巇隙為道術(shù)用。”

      6.飛箝術(shù)

      “飛”就是飛揚(yáng)褒獎;“箝”就是鉗制約束。

      飛箝術(shù)言取人之道,先作聲譽(yù)以飛揚(yáng)之,彼必露情竭志而無隱,然后因其所好,牽制約束,使之不得脫離的役使人才之術(shù)。A:方法

      1.目標(biāo): 空往而實(shí)來,綴而不失 ——一文錢騙術(shù),《智囊·狡黠》;辦學(xué)者 2.征召人才:“度權(quán)量能,征遠(yuǎn)來近?!?——燕昭王招賢納士

      3.役使人才:“量智能,權(quán)材力” ;“審其意,知其所好惡” ——龐統(tǒng)當(dāng)總參謀長;晉文公提升箕鄭 B.役使人才之術(shù)

      ①先征之而后重累。使賢才:征來后累以重任,如諸葛亮,鞠躬盡瘁,死而后已 ②先重累而后毀之。使干才:如諸葛亮用魏延 ③量能立勢以鉤之

      講效率:對人迫之以勢,如駕重車下山的轅馬 ④伺候見間而箝之

      講手段:利用人的缺陷箝制約束,使之不得脫也。如曹操見“間”而箝徐庶;司馬熹使趙造“間”而箝中山王。錢鍾書的《圍城》。⑤稱財(cái)貨、珠玉、璧帛、采色以事之 養(yǎng)閑人:如孟嘗君的“雞鳴狗盜”之徒 C:原則──道術(shù)與術(shù)道 ●“察同異,別是非之語?!?——用人有道

      ●“見內(nèi)外之辭,知有無之?dāng)?shù)。” ——知人有數(shù)

      ●“決安危之計(jì),定親疏之事。” ——役人者,手操的是雙刃劍

      7.權(quán)術(shù)與謀術(shù)

      “權(quán)”:古代秤砣叫權(quán),權(quán)衡輕重的意思。在這里指的是在游說中,對所使用的語言、談話的技巧和所說服的對象,要加以謹(jǐn)慎的權(quán)衡和選擇。

      “謀”:謀就是思慮、計(jì)謀。《說文》:“慮難曰謀?!睉]人難、慮事難、參立難,將這三難解決好了,計(jì)謀就會應(yīng)運(yùn)而生。

      權(quán)謀術(shù)講的是如何選擇言談的技巧和如何權(quán)衡游說的對象,針對人類行為的弱點(diǎn)和事物發(fā)展變化的釁隙,見隙而謀的謀略技術(shù)。A:“權(quán)”的方法和技巧

      1.目標(biāo):“繁言而不亂,翱翔而不迷,變易而不危,睹要得理?!?2.五種可選擇的言語方式 ●佞言者,諂而干忠 ●諛言者,博而干智 ●平言者,決而干勇 ●戚言者,權(quán)而干信 ●靜言者,反而干勝

      3.五種忌諱和可利用的言語方式 ●病者,感衰氣而不神 ●怨者,腸絕而無主 ●憂者,閉塞而不泄 ●怒者,妄動而不治 ●喜者,宣散而無要

      ——“心安靜則神策生,慮深遠(yuǎn)則計(jì)謀成”

      4.“見人說法”九種 ①與智者言依于博 ②與博者言依于辯 ③與辯者言依于要 ④與貴者言依于勢 ⑤與富者言依于高 ⑥與貧者言依于利 ⑦與賤者言依于謙

      ⑧與勇者言依于敢 ⑨與過者言依于銳 B:“權(quán)”之道

      ●“言多類,事多變,終日言不失其類?!?●“智貴明,辭貴奇?!?/p>

      ——改姓輔氏的智果與出使齊國的郄疵《趙策一》 ——靖郭君田嬰與“海大魚”,《齊策一》 C:何為計(jì)謀

      “凡謀有道,必得其所因?!薄肮室蚱湟梢宰冎?,因其見以然之,因其說以要之,因其勢以成之,因其惡以權(quán)之,因其患以斥之。摩而恐之,高而動之,微而證之,符而應(yīng)之,擁而塞之,亂而惑之,是謂計(jì)謀?!?——亂而惑之:張巡與安祿山玩草人借箭 D:如何設(shè)立計(jì)謀

      ①“度材、量能、揣情,事之司南也。” ——設(shè)立計(jì)謀的指南

      ②“變生事,事生謀,謀生計(jì)?!?——事物發(fā)展的變隙乃謀生之地 ③“參以立焉,以生奇”

      ——仁、智、勇三才:參立難。“仁人輕貨,不可誘以利,可使出費(fèi);勇士輕難,不可懼以患,可使居危;智者達(dá)于數(shù),明于理,不可欺以不誠,可示以道理,可使立功。” E:計(jì)謀之用

      ①“公不如私,私不如結(jié),結(jié)而無隙者也?!保ㄋ?,隱密;結(jié),同心;謀生于有隙,用于無隙)

      ②“正不如奇(奇,因事機(jī)發(fā)),奇流而不止者也?!?③“可知者,可用也;不可知者,謀者所不用也?!?F:“謀”之道

      ●“用于眾人之所不能知,用于眾人之所不能見。” ●“圣人之道,在隱與匿?!?8.決疑術(shù)

      決疑術(shù)是按著“度以往事,驗(yàn)之來事,參之平素”的法則而進(jìn)行的決疑斷惑之術(shù)。其宗旨在于說明有哪些事情值得我們費(fèi)心力去做決斷,并教我們?nèi)绾稳ハ聸Q斷。自古以來,善決疑者致福,不善決疑者有殃。決疑是極難為而又影響深遠(yuǎn)之事,所謂“決情定疑,萬事之機(jī),以正治亂,決成敗,難為者”。A:方法與技巧

      ●“決情定疑,萬事之機(jī),以正治亂,決成敗,難為者。故先王乃用蓍龜者,以自決也?!?/p>

      ●五種值得決斷的事情

      ⊙“王公大人之事也,危而美名者” ⊙“不用費(fèi)力而易成者”

      ⊙“用力犯勤苦,然不得已而為之者” ⊙“去患者” ⊙“從福者”?!裎宸N決斷方式 ⊙決之以“陽德” ⊙決之以“陰賊” ⊙決之以“信誠” ⊙決之以“蔽匿” ⊙決之以“平素” B:原則

      ●“度以往事,驗(yàn)之來事,參之平素” 結(jié)束語:

      一、縱橫術(shù)與儒家哲學(xué)

      ——道德問題:德與術(shù);“德養(yǎng)五氣,心能得一,乃有其術(shù)。”

      二、縱橫術(shù)與道家哲學(xué)

      “無為而求,安靜五臟,和通六腑,精神魂魄固守不動,乃能內(nèi)視、反聽,定志慮之太虛,待神往來。以觀天地開辟,知萬物所造化,見陰陽之終始,原人事之政理?!?/p>

      ——老子的“無為”與莊子的“無我”

      三、縱橫術(shù)的現(xiàn)代意義

      ●日常生活:人生的游戲色彩

      ●職業(yè)技術(shù):治國、外交、企業(yè)管理… ——讀孔子之言,行儀秦之事 ——“內(nèi)圣外王”與“勝者為王”

      第五篇:實(shí)驗(yàn)三GUI編程

      實(shí)驗(yàn)三GUI編程

      一、實(shí)驗(yàn)?zāi)康模?/p>

      1、了解Java系統(tǒng)圖形用戶界面的基本工作原理和界面設(shè)計(jì)的步驟

      2、了解圖形用戶界面的事件響應(yīng)機(jī)制.3、掌握圖形用戶界面各種常用的基本組件的使用方法及其事件響應(yīng).4、掌握圖形用戶界面各種布局策略的設(shè)計(jì)與使用.二、實(shí)驗(yàn)時(shí)間:

      三、實(shí)驗(yàn)地點(diǎn):

      四、實(shí)驗(yàn)內(nèi)容與步驟:

      (1)創(chuàng)建一用戶登錄界面,接受用戶輸入的帳號和密碼,給三次輸入機(jī)會。

      (2)編寫成人身高和體重檢查程序。

      要求:身高和體重在兩個不同的文本框中輸入,性別在單選鈕中選擇。

      按確定后顯示標(biāo)準(zhǔn)體重和身材比例評價(jià)。附:

      國際上常用的人的體重計(jì)算公式,以及身材比例計(jì)算(比較適合東方人)標(biāo)準(zhǔn)體重=(身高cm-100)x0.9(kg)

      標(biāo)準(zhǔn)體重(女)=(身高cm-100)x0.9(kg)-2.5(kg)

      正常體重:標(biāo)準(zhǔn)體重+-(多少)10%.

      超重:大于標(biāo)準(zhǔn)體重10%小于標(biāo)準(zhǔn)體重20%.

      輕度肥胖:大于標(biāo)準(zhǔn)體重20%小于標(biāo)準(zhǔn)體重30%.

      中度肥胖:大于標(biāo)準(zhǔn)體重30%小于標(biāo)準(zhǔn)體重50%.

      重度肥胖:大于標(biāo)準(zhǔn)體重50%以上

      (3)實(shí)現(xiàn)一個模擬手機(jī)的圖形用戶界面,包括一個顯示區(qū)和一個鍵盤區(qū),顯示區(qū)用來顯示數(shù)字和信息,鍵盤區(qū)包括0~9,10個數(shù)字鍵和“發(fā)送”、“清零”、“關(guān)機(jī)”三個命令鍵。當(dāng)用戶按數(shù)字鍵時(shí),相應(yīng)的數(shù)字回顯在顯示區(qū)上;當(dāng)用戶按“清零”鍵時(shí),顯示區(qū)的數(shù)字清空;當(dāng)用戶按“發(fā)送”鍵時(shí),顯示區(qū)中出現(xiàn)當(dāng)前的號碼和“撥號中......”的信息;當(dāng)用戶按關(guān)機(jī)鍵時(shí)“正在關(guān)機(jī)......”。

      第(1)用Application編程,(2)(3)用Applet編程。

      五、實(shí)驗(yàn)結(jié)果分析:

      下載關(guān)于GUI的一點(diǎn)心得體會word格式文檔
      下載關(guān)于GUI的一點(diǎn)心得體會.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        matlab gui 設(shè)計(jì)總結(jié)[5篇模版]

        1. 7以上版本的matlab,控件pushbutton背景顏色修改以后并沒有什么明顯效果,只是按鈕的邊緣顯示為所設(shè)置的背景顏色。 2 .凡是在屬性對話框Property Inspector中可以設(shè)置的屬性,都......

        java GUI圖形化界面編程總結(jié)

        GUI(Graphical User Interface)圖形化界面編程總結(jié) Java.Awt:Abstract Window ToolKit(抽象窗口工具包) Javax.Swing: 圖形化界面基本設(shè)置: 設(shè)置窗體大?。簊etSize(長,寬); 設(shè)置窗體......

        基于ARMLINUX的嵌入式GUI的設(shè)計(jì)與開發(fā).

        基于ARM LINUX的嵌入式GUI的設(shè)計(jì)與開發(fā) 摘 要:GUI設(shè)計(jì)在嵌入式系統(tǒng)設(shè)計(jì)中占據(jù)著舉足輕重的地位,MiniGUI為一種適合于嵌入式系統(tǒng)的、功能強(qiáng)大的GUI,本文介紹了基于ARM和Linux的M......

        Java 教案-第12章 GUI初步五篇

        第12章 GUI初步 12.1 介紹(Introduction) 為JavaGUI程序設(shè)計(jì)應(yīng)用程序接口(API)是面向?qū)ο缶幊套罹实膬?nèi)容,圖形用戶界面(GUI)可以通過鍵盤或鼠標(biāo)來響應(yīng)用戶的操作。這章首先介紹......

        MATLAB GUI數(shù)據(jù)傳遞總結(jié)[小編整理]

        Matlab的GUI參數(shù)傳遞方式總結(jié) 其實(shí)Matlab提供了很多種直接或間接方法實(shí)現(xiàn)多fig中的數(shù)據(jù)共享,只是大家沒有注意 罷了: 1、全局變量 2、作為函數(shù)的參數(shù)傳遞 3、利用控件的userda......

        淺析GUI軟件的測試用例優(yōu)化算法的論文(精選多篇)

        隨著計(jì)算機(jī)產(chǎn)業(yè)應(yīng)用范圍的進(jìn)一步拓展,計(jì)算機(jī)數(shù)據(jù)應(yīng)用技術(shù)也進(jìn)一步實(shí)現(xiàn)了深入研究,GUI軟件技術(shù)是現(xiàn)代網(wǎng)絡(luò)技術(shù)應(yīng)用的重要技術(shù)之一,它的應(yīng)用實(shí)現(xiàn)了計(jì)算機(jī)數(shù)據(jù)挖掘與數(shù)據(jù)圖像轉(zhuǎn)換......

        MATLAB中GUI在圖像處理應(yīng)用中的設(shè)計(jì)(包括各種算法)

        用MATLAB 進(jìn)行圖像處理算法的界面設(shè)計(jì) 1 / 52 目錄 1.設(shè)計(jì)目的???????????????????3 2.題目分析???????????????????3 3.總體設(shè)計(jì)?......

        心得體會

        搞好校園文化建設(shè)給孩子歡樂幸福童年 2017年8月2日下午有幸聆聽了中國教育學(xué)會校園文化專業(yè)委員會副理事長夏書芳教授關(guān)于學(xué)校校園文化建設(shè)的報(bào)告,使我受益匪淺。 校園是現(xiàn)代......