?? kdevelop-manual-4.html
字號(hào):
這一工作的步驟之一就是對(duì)話框設(shè)計(jì),例如,改變畫圖應(yīng)用中的筆刷寬度值。這可由Kdevelop內(nèi)部的對(duì)話框編輯器dialog editor來輕易完成?,F(xiàn)在,你如何創(chuàng)造那些美觀的對(duì)話框呢?由于Qt-library是GUI工具箱,它提供了一個(gè)所謂的"widgets"基本套件;例如,表示純文本的標(biāo)簽,文本輸入的行編輯,導(dǎo)航按鈕及選擇命令。用戶界面中除了這些"低水平"的部件,還提供標(biāo)準(zhǔn)的對(duì)話,隨時(shí)可用,例如打印對(duì)話框printing 。KDE庫KDE-libraries是基于Qt-庫的,它包括某些對(duì)話的替代及可用于你的應(yīng)用的其他widgets 。這樣,當(dāng)你開始設(shè)計(jì)你的用戶的應(yīng)用操作時(shí),你應(yīng)該讓你自己盡量的熟悉隨Qt 和 KDE提供的widgets。Qt的在線文檔為大多數(shù)widgets提供了快照,因此你應(yīng)該先去看看。然后我們建議你仔細(xì)看看KDE-UI庫, 它提供了其他一些widgets。象KHTML庫一樣的庫包含了很專業(yè)化的widgets ,很多程序都在使用。它只是簡化了應(yīng)用的設(shè)計(jì),例如Qt提供的預(yù)先定義的對(duì)話。對(duì)于你自己的對(duì)話,這些較低級(jí)的widgets 正是你所需要的。一個(gè)對(duì)話僅僅由不同的widgets結(jié)合在一起組成了一個(gè)界面,它在技術(shù)上是由C++代碼編程于一個(gè)從<CODE>QWidget</CODE>中派生出的一個(gè)類,或一個(gè)更專業(yè)化的繼承了 <CODE>QWidget</CODE>的對(duì)話類。因此使用widget的程序需要一個(gè)widget類的對(duì)象。--這幾乎是你要理解對(duì)話及視圖是如何使用的所有東西。</P><P>現(xiàn)在Kdevelop的對(duì)話框編輯器dialog editor提供一個(gè)很好的方法來簡化你的對(duì)話的建立過程,它可以可視化得創(chuàng)建對(duì)話和用戶界面,你無須再將對(duì)話和純C++ 代碼結(jié)合再一起。--這是創(chuàng)建界面的較為復(fù)雜的方法。通過選擇視圖菜單中的相關(guān)條目可切換至對(duì)話框編輯器dialog editor (或通過工具條按鈕)。你可以看見Kdevelop的界面改變了,但是,菜單條和工具條仍然看來十分熟悉。這使得在兩種工作模式間前后切換變得十分容易,你很快會(huì)習(xí)慣于它們的。然后你可由你所愿建立你的視圖和對(duì)話框。并設(shè)置所有視圖包含項(xiàng)目的可用設(shè)置。當(dāng)你完成后,從建立菜單中選擇"生成源";對(duì)話框編輯器dialog editor 及項(xiàng)目管理器會(huì)負(fù)責(zé)剩下的事情。你可以通過選擇"生成"或"執(zhí)行"來測(cè)試是否一切正常, 這會(huì)建立你的包含了你的新資源的應(yīng)用。但是不要期望對(duì)話框已經(jīng)可用--這通常是一個(gè)開發(fā)者工作完成implementation的一般方式。但不要擔(dān)心--這也并非那么困難。要想得到關(guān)于創(chuàng)建對(duì)話的更多信息,請(qǐng)參見<A HREF="kdevelop-manual-11.html#The Dialog Editor">對(duì)話框編輯器</A>, 實(shí)例及指導(dǎo)可參見<A HREF="programming/index-6.html">KDevelop編程手冊(cè)</A></P><H3>捆綁新元素</H3><P>在你創(chuàng)建了你的用戶界面并生成了你的資源后,你可以準(zhǔn)備讓你的應(yīng)用通過對(duì)象來使用他們。如上所述,通常一個(gè)基于GUI的程序會(huì)包含菜單條和主視;另外主視可由控制條操作,它是主應(yīng)用類及其連接的文檔對(duì)象的一部分。按照面向?qū)ο蟮脑O(shè)計(jì), 你可以將給出的結(jié)構(gòu)描述為"文檔--視圖--控制器"模式。這種模式通過介紹對(duì)象在程序中的作用描述了對(duì)象在應(yīng)用中的基本功能??刂破鞔韰f(xié)調(diào)主應(yīng)用的一類,它通過菜單條及工具條,狀態(tài)條提供用戶交互功能。文檔類的任務(wù)是代表用戶使用的文檔。因此,文檔類應(yīng)該可以完成所有的比如裝載文件和重新保存文件的操作?,F(xiàn)在視圖位于應(yīng)用窗口中央, 為用戶以可視化方式顯示文檔的一部分,并提供所有功能使用戶可改動(dòng)數(shù)據(jù)。由于控制條和工具條已出現(xiàn),你的工作將是創(chuàng)建主視,以及用戶可以用于改變?nèi)魏卧O(shè)置或使用另外功能的其他對(duì)話。</P><P>要建立你的主視,為你的應(yīng)用生成的源代碼已經(jīng)以<YourApplication>形式包含了一個(gè)類,繼承<CODE>QWidget</CODE>類的視圖(這是操縱Qt中可視化界面的最小類,因此也在KDE中)。 總的來說,展開給定的來有三種不同的方法:<UL><LI>去掉文檔--視圖結(jié)構(gòu)并使用一個(gè)預(yù)先定義的已包含了很多功能的"大"widgets,只需去掉視圖類并由另一類代替。</LI><LI>改變視圖類的繼承,改變至,例如,QmultiLineEdit,這樣你的應(yīng)用會(huì)變成一個(gè)編輯器。</LI><LI>如果你的主視窗口要包含若干獨(dú)立部件,你就需要用dialog editor創(chuàng)建你需要的widgets及其classes,并在連接后可生成主視的視圖類生成器中創(chuàng)建該classes的對(duì)象。</LI></UL></P><P>對(duì)對(duì)話來說,情況就有些不同了。通常的做法是從菜單條或工具條上按鈕進(jìn)入,訪問對(duì)話框。在你創(chuàng)建了你的對(duì)話并生成資源代碼后,類就可用于創(chuàng)建作為對(duì)話的對(duì)象了。所以你先看一下,在菜單條找出適當(dāng)?shù)奈恢脕砑尤胗脩暨x擇后可打開對(duì)話的入口。如果給出的菜單與你的要求不符,你可以創(chuàng)建一個(gè)象其他菜單一樣的新的彈出菜單,插入你的項(xiàng)目及當(dāng)你的菜單被選中后你想要訪問的地方。通過創(chuàng)建對(duì)話類實(shí)例實(shí)現(xiàn)slot,并用基礎(chǔ)類提供的成員函數(shù)member functions訪問對(duì)話框。而且你還必須為菜單項(xiàng)指定ID。應(yīng)用程序框架把已給出的ID收集于文件resource.h中,因此你只需加入ID并給它一個(gè)新編號(hào)。這樣你就完成了--另外你還可以創(chuàng)建另外的工具條按鈕并加入狀態(tài)幫助信息。現(xiàn)在你們的應(yīng)用給用戶提供了可視的新功能。接著你必須加入你的對(duì)話將用到的操縱任何參數(shù)值的方法的實(shí)現(xiàn)implementation。最后,訪問你的生成工具或"執(zhí)行",改寫過的文件會(huì)被重新編譯;這樣你改動(dòng)的結(jié)果可以立即測(cè)試。</P><H3>完整開發(fā)過程</H3><P>以上我們已經(jīng)討論了關(guān)于如何利用KDE開始建立新的應(yīng)用及如何擴(kuò)展用戶界面的一般方法。現(xiàn)在,這些是IDE幫助你的標(biāo)準(zhǔn)步驟,但KDE卻不僅僅為你提供創(chuàng)建應(yīng)用及其可視化部件的工具。下面我們將對(duì)它對(duì)推動(dòng)應(yīng)用開發(fā)提供的功能做一個(gè)簡要描述。</P><H3>源代碼管理</H3><P>Kdevelop IDE提供給編程人員很多的方法使他們?cè)谧疃痰臅r(shí)間內(nèi)完成其目標(biāo)。如以上所述,KappWizard和dialogeditor縮短了你手工要達(dá)成同樣結(jié)果一般所需的時(shí)間。但這并不包括一個(gè)程序員通常必須做的工作:為應(yīng)用的完成努力工作,以使終端用戶能正確的執(zhí)行。那么,為什么KDE是你希望用做編程環(huán)境的IDE,包括它的即使是非GUI應(yīng)用的創(chuàng)建作用?</P><P>無疑,IDE總體的管理著你的項(xiàng)目;那就是說,你無須小心對(duì)變化的保存,Makefile的生成,等等--這提供了整個(gè)項(xiàng)目的管理,KDE會(huì)在任何一個(gè)C++應(yīng)用開發(fā)中不遺余力的為你服務(wù)。你可以很容易的理解,把管理的任務(wù)從程序員手中接過后,他可以更專注于源代碼的編寫工作了。在通常遍布于項(xiàng)目中許多不同的文件,因此你可以分離一定的文件。但這意味著仍然要努力工作--作為開發(fā)人員,你仍然不得不創(chuàng)建這些文件和編寫這些標(biāo)準(zhǔn)內(nèi)容,例如包含了數(shù)據(jù),作者名的頭部文件,及例如代碼的執(zhí)照術(shù)語。另外,這要求你必須記得你的函數(shù),及類declarations和implementation在何處。因此,KDE包含了類工具--各種各樣的操作,他允許快速操作和將開發(fā)者的注意力從文件轉(zhuǎn)移至對(duì)象classes,結(jié)構(gòu)和方法。類生成器讓你可以輕易創(chuàng)建一個(gè)包含繼承,attributes,和文檔的新的類。對(duì)于面向?qū)ο蟮墓ぷ?,類瀏覽器把你帶到你的對(duì)象的位置;而代碼實(shí)際在哪個(gè)位置已不再有什么關(guān)系了。瀏覽器自動(dòng)掃描所有資源并在有增改時(shí)自我重建以跟上你的工作,使你可以直接得到新的代碼。通過上下文菜單,類瀏覽器會(huì)提供更多的功能,例如,將你帶到實(shí)現(xiàn)implementation或成員函數(shù)member functions的聲明declaration。然后,成員的增加可以通過對(duì)話來完成--不必尋找文件和你要加入的項(xiàng)的位置。最后,你可以通過類工具對(duì)話得到你的項(xiàng)目的類classes的更為專業(yè)的視圖,它會(huì)以樹的形式顯示類classes及其對(duì)象的作用,內(nèi)容和繼承。要想得到更詳細(xì)的信息,請(qǐng)參見<A HREF="kdevelop-manual-10.html#The Class Browser">類瀏覽器</A></P><H3>建立并執(zhí)行你的應(yīng)用</H3><P>Kdevelop IDE是特別設(shè)計(jì)來為你完成你必須定期執(zhí)行的所有那些步驟,例如建立和執(zhí)行你的程序及在源代碼中定位errors。</P><P>你可以開始你的建立過程,通過:<UL><LI>單擊工具條上的"建立"或"全部重建"符號(hào)</LI><LI>或從"建立"菜單中選擇"建立"或"全部重建"</LI></UL></P><P>要執(zhí)行你的應(yīng)用,請(qǐng)選擇<UL><LI>工具條中的"執(zhí)行"或"編譯"符號(hào)(由你的程序啟動(dòng) KDbg )</LI><LI>建立菜單中的相關(guān)菜單項(xiàng)</LI><LI>或者通過"由Arguments 執(zhí)行"來用其他arguments啟動(dòng)你的應(yīng)用</LI></UL>要想得到關(guān)于建立過程的更多信息,請(qǐng)參見<A HREF="kdevelop-manual-8.html#Projects">項(xiàng)目篇</A>。</P><H3>尋找程序錯(cuò)誤</H3><P>由于一般 errors錯(cuò)誤會(huì)在創(chuàng)建過程(由Compiler 編譯器監(jiān)控 ,并且由于它們?cè)从诖a的句法錯(cuò)誤,一般被稱作句法errors錯(cuò)誤。)或應(yīng)用的執(zhí)行過程中發(fā)生,它們必須由程序員找到并除去。 要定位errors錯(cuò)誤,開發(fā)者需要得到引起錯(cuò)誤發(fā)生的確切信息。 如上所述,Compiler編譯器本身可以檢測(cè)句法errors錯(cuò)誤,導(dǎo)致可執(zhí)行文件無法建立(這在Linker 連接器檢測(cè)到"unresolved 信號(hào)時(shí)也有可能發(fā)生--參見連接器選項(xiàng)<A HREF="kdevelop-manual-9.html#Linker Options">連接選項(xiàng)</A>). 它會(huì)盡可能詳細(xì)的對(duì)錯(cuò)誤作出描述,這樣錯(cuò)誤就可以找到并去除。在創(chuàng)建過程,你可以看見output輸出窗口彈出,告訴你你的make工具和編譯器Compiler要說的話。萬一遇到了錯(cuò)誤errors或者警告warnings, 只要在錯(cuò)誤行按動(dòng)鼠標(biāo)按鈕,編輯器就會(huì)打開該文件并將光標(biāo)移到錯(cuò)誤行。這也可以通過"視圖"菜單中的"下一個(gè)錯(cuò)誤"和"上一個(gè)錯(cuò)誤"條目或通過相關(guān)鍵盤快捷方式shortcuts來完成。你會(huì)發(fā)現(xiàn)這十分好用,為你到達(dá)錯(cuò)誤節(jié)省了不少時(shí)間,這樣排除狀況只要求你作為程序員的相關(guān)知識(shí)。實(shí)時(shí)錯(cuò)誤是在執(zhí)行時(shí)出現(xiàn)的,大多數(shù)情況下會(huì)導(dǎo)致節(jié)段錯(cuò)誤,有時(shí)很難發(fā)現(xiàn)。因此,你可以讓編譯器Compiler把信息加入二進(jìn)制文件以監(jiān)測(cè)源代碼的執(zhí)行。調(diào)試器則是允許你通過啟動(dòng)應(yīng)用并在代碼中為需中斷執(zhí)行的地方設(shè)置斷點(diǎn)來完成它的另一類程序,因此你可以嚴(yán)格控制其實(shí)現(xiàn)implementations 而且通過這樣至少可以檢測(cè)引起錯(cuò)誤發(fā)生的行。找出真正的引發(fā)原因則是另一項(xiàng)任務(wù);它要依靠程序員對(duì)它的定位。<B>gdb</B>是GNU編譯器Compiler提供的調(diào)試器,象<EM>ddd</EM> 或<EM>KDbg</EM> 一樣的程序是允許更方便使用的前端。因此KDevelop使用KDbg 并讓你可以通過"建立"菜單中的"調(diào)試"命令或工具條中的"調(diào)試"標(biāo)志來激活調(diào)試debugging程序。要想知道關(guān)于調(diào)試debugging應(yīng)用的更多信息,請(qǐng)參見<A HREF="kdevelop-manual-8.html#Projects">項(xiàng)目篇</A> 及<A HREF="programming/index-12.html">KDevelop編程手冊(cè)</A>。</P><H2><A NAME="ss4.4">4.4</A> <A HREF="kdevelop-manual.html#toc4.4">其他信息</A></H2><P>本章的話題將更詳細(xì)的在KDevelop IDE提供的文檔和其他文檔中敘述以下內(nèi)容:</P><P><UL><LI><A HREF="programming/index.html">KDevelop編程手冊(cè) </A>,完整的介紹了使用Qt和KDE庫進(jìn)行GUI的應(yīng)用設(shè)計(jì)和編程,</LI><LI>這本手冊(cè),從<A HREF="kdevelop-manual-5.html#Overview">概要</A>一節(jié)到<A HREF="kdevelop-manual-8.html#Projects">項(xiàng)目</A>一節(jié), 描述了KDevelop的所有可用函數(shù), </LI><LI>這本手冊(cè),在<A HREF="kdevelop-manual-11.html#The Dialog Editor">對(duì)話框編輯器</A>一節(jié), 敘述了對(duì)話編輯器dialog editor對(duì)于創(chuàng)建你自己的widgets所起的作用, </LI><LI>在線<EM>Online</EM>-參考文檔到Qt庫Qt-library, 包括了使用Qt的GUI-toolkit工具箱及類參考和快照創(chuàng)建其包含的最重要的可使用的widgets的實(shí)例,</LI><LI><EM>KDE-Library Class-Reference</EM>, 由KDevelop從KDE-庫資源自動(dòng)生成,包含了所有類classes和widgets的描述及其使用的代碼實(shí)例,</LI><LI>在Internet上,參見:<UL><LI><A HREF="http://www.troll.no">http://www.troll.no</A>以得到關(guān)于Qt和其他第三方widgets的信息,</LI><LI><A HREF="http://www.kde.org">http://www.kde.org</A>以得到關(guān)于KDE項(xiàng)目和開發(fā)者指導(dǎo),</LI><LI><A HREF="http://developer.kde.org">http://developer.kde.org</A>以得到其他KDE應(yīng)用開發(fā)的的參考.</LI><LI>KDevelop的主頁<A HREF="http://www.kdevelop.org">http://www.kdevelop.org</A></LI></UL></LI></UL></P><HR><A HREF="kdevelop-manual-5.html">Next</A><A HREF="kdevelop-manual-3.html">Previous</A><A HREF="kdevelop-manual.html#toc4">Contents</A></BODY></HTML>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -