freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于qt實現(xiàn)的畫圖板程序的設計論文(編輯修改稿)

2024-12-23 21:48 本頁面
 

【文章內(nèi)容簡介】 息商務學院 2020 屆畢業(yè)設計說明書 第 6 頁 共 27 頁 美 FreeBSD 的廣受美譽的 ports 系統(tǒng) —— Portage 包管理系統(tǒng)。不同于 APT 和 YUM等二進制文件分發(fā)的包管理系統(tǒng), Portage 是基于源代碼分發(fā)的,必須編譯后才能運行,對于大型軟件而言比較慢,不過正因為所有軟件都是在本地機器編譯的,在經(jīng)過各種定制的編譯參數(shù)優(yōu)化后,能將機器的硬件性能發(fā)揮到極致。 Gentoo 是所有 Linux 發(fā)行版本里安裝最復雜的,但是又是安裝完成后最便于管理的版本,也是在相同硬件環(huán)境下運行最快的版本。 ( 3) FreeBSD 并不是一個 Linux 系統(tǒng),不過 FreeBSD 與 Linux 的用戶群有相當一部分是重合的,二者支持的硬件環(huán)境也比較一致,所采用的軟件也比較類似,因此也可以將 FreeBSD 視為一個 Linux 版本來比較。 FreeBSD 擁有兩個分支: stable和 current。顧名思義, stable 是穩(wěn)定版,而 current 則是添加了新技術(shù)的測試版。 FreeBSD 采用 Ports 包管理系統(tǒng),與 Gentoo 類似,基于源代碼分發(fā),必須在本地機器編后后才能運行,但是 Ports 系統(tǒng)沒有 Portage 系統(tǒng)使用簡便,使用起來稍微復雜一些。 FreeBSD 的最大特點就是穩(wěn)定和高效,是作為服務器操作系統(tǒng)的最佳選擇,但對硬件的支持沒有 Linux 完備,所以并不適合作為桌面系統(tǒng) [10]。 中北大學信息商務學院 2020 屆畢業(yè)設計說明書 第 7 頁 共 27 頁 QT 技術(shù) QT 是用于本地化跨平臺應用開發(fā)的領(lǐng)先性框架。 QT 應用程序接口與工具兼容于所有支持平臺,讓開發(fā)員們掌握一個應用程序接口,便可執(zhí)行與平臺非相關(guān)的應用開發(fā)與配置。通過使用 QT,開發(fā)小組們從主要的開發(fā)平臺,可為主要操作系統(tǒng)創(chuàng)建本地化的應用程序。 QT主要特性 QT 是一個跨平臺的 C++圖形用戶界面庫,由挪威 TrollTech 公司開發(fā),目前包括 QT/X1基于 Framebuffer 的 QT、快速開發(fā)工具 QT Designer 以及國際化工具QT Linguist 等。人 們所熟知的 Linux 下面的 KDE 環(huán)境就是基于 QT 開發(fā)而成的。QT支持 Unix 和 Linux 系統(tǒng)以及 Windows 系統(tǒng)。 QT 的主要特點有:面向?qū)ο?,很容易擴展,并且允許真正的組件編程; QT 對各個模塊進行了良好的封裝,使各模塊可重用性較好;優(yōu)良的跨平臺特性,使用QT類編寫的程序可以實現(xiàn)“一次編碼,到處編譯”,極大的降低了跨平臺開發(fā)的難度;構(gòu)件支持,對于對象間通信, QT 沒有采用函數(shù)回調(diào)的方法,而是采用了一種全新并且可選的被稱為“信號與槽”的對象間通信機制,通過一個對象信號的發(fā)射,另一個槽函數(shù)的響應,使各個對象之間 的通信安全而且高效。 QT 的這些特點使它非常適合于真正的構(gòu)件編程,同時使各個組件之間的協(xié)同工作變得十分簡單,并且 QT是直接基于 Xlib 的,不依賴 Motif 工具包,所以它的執(zhí)行效率比一般的基于平臺的代碼的執(zhí)行效率要高 [11]。 QT編程機制簡介 信號 /槽機制是 QT 的一個中心特征并且也許是 QT 與其它工具包的最不相同的部分。在圖形用戶界面編程中,經(jīng)常希望一個窗口部件的一個變化被通知給另一個窗口部件。更一般地,希望任何一類的對象可以和其它對象進行通訊。 較老的工具包使用一種被稱作回調(diào)的通訊方式來實現(xiàn) 同一目的?;卣{(diào)是指一個函數(shù)的指針,所以如果你希望一個處理函數(shù)通知你一些事件,你可以把另一個函數(shù)(回調(diào))的指針傳遞給處理函數(shù)。處理函數(shù)在適當?shù)臅r候調(diào)用回調(diào)?;卣{(diào)有兩個主要缺點。首先他們不是類型安全的。從來都不能確定處理函數(shù)使用了正確的參數(shù)來中北大學信息商務學院 2020 屆畢業(yè)設計說明書 第 8 頁 共 27 頁 調(diào)用回調(diào)。因此容易造成進程崩潰,另外一個問題是,回調(diào)這種方式緊緊的綁定了圖形用戶接口的功能元素,因而很難把開發(fā)進行獨立的分類。 QT的信號與槽機制是不同的。 QT 的信號與槽均以函數(shù)形式出現(xiàn), QT的窗口部件有很多預定義的信號,但也可以通過繼承來加入自己的信號。槽就是一個可以被調(diào) 用處理特定信號的函數(shù)。 QT 的窗口部件有很多預定義的槽,但是通常的習慣是你可以加入自己的槽,這樣你就可以處理你所感興趣的信號。可以用 connect()函數(shù)對需要的信號和槽進行連接。當對象的內(nèi)部狀態(tài)發(fā)生改變,信號就被發(fā)射。從某種意義上講,它們也許對外面的世界感興趣。這就是所有的對象通訊時所做的一切。它不知道也不注意無論有沒有東西接收它所發(fā)射的信號。當一個信號被發(fā)射,它所連接的槽會被立即執(zhí)行,就像一個普通函數(shù)調(diào)用一樣(見圖 21)。信號 /槽機制完全不依賴于任何一種圖形用戶界面的事件回路。當所有的槽都返回后發(fā)射的信 號也將返回。信號與插槽機制并不要求類之間互相知道細節(jié),這樣就可以相對容易的開發(fā)出代碼可高重用的類 [12]。 信號和槽的機制是類型安全的:一個信號的簽名必須與它的接收槽的簽名相匹配。(實際上一個槽的簽名可以比它接收的信號的簽名少,因為它可以忽略額外的簽名。)因為簽名是一致的,編譯器就可以幫助檢測類型不匹配。這樣就以以警告的方式報告類型錯誤,而不會使系統(tǒng)產(chǎn)生崩潰。信號和槽是寬松地聯(lián)系在一起的:一個發(fā)射信號的類不用知道也不用注意哪個槽要接收這個信號。 QT 的信號和槽的機制可以保證如果你把一個信號和一個槽連接起來, 槽會在正確的時間使用信號的參數(shù)而被調(diào)用。信號和槽可以使用任何數(shù)量、任何類型的參數(shù)。它們是完全類型安全的:不會再有回調(diào)核心轉(zhuǎn)儲( core dump)。 可以把許多信號和你所希望的單一槽相連,并且一個信號也可以和所期望的許多槽相連。把一個信號和另一個信號直接相連也是可以的。(這時,只要第一個信號被發(fā)射時,第二個信號立刻就被發(fā)射。) 總體來看,信號和槽構(gòu)成了一個強有力的組件編程機制。 如果一個類要使用信號與槽機制,它就必須是從 QObject 或 QObject 的子類繼承,而且類的定義必須加上 Q_OBJECT 宏。 signals、 slots 和 emit 是 QT特有的關(guān)鍵字,分別用來表示信號、槽、和發(fā)送信號,移除這些關(guān)鍵字和預處理程序,就可以使用標準的 C++編譯器。槽同其他函數(shù)一樣也具有訪問權(quán)限,只是槽的訪問權(quán)限中北大學信息商務學院 2020 屆畢業(yè)設計說明書 第 9 頁 共 27 頁 決定了誰可以和它相連,如一個 public slots:包含了任何信號都可以相連的槽。一個 protected slots: 包含了只有這個類和它的子類的信號才能連接的槽。這就是說這些槽只是類的實現(xiàn)的一部分,而不是它和外界的接口。 一個 private slots:包含了只有這個類本身的信號可以連接的槽,甚至它的子類都沒有獲得連 接的權(quán) 利[13][14][15]。 圖 31 信號和槽的連接原理圖 QT 中的元對象系統(tǒng)是用來處理對象間通訊的信號 /槽機制、運行時的類型信息和動態(tài)屬性系統(tǒng)。它基于下列三類: QObject 類、類聲明中的私有段中的 Q_OBJECT宏、元對象編譯器( moc)。 moc讀取 C++源文件。如果它發(fā)現(xiàn)其中包含一個或多個類的聲明中含有 Q_OBJECT宏,它就會給含有 Q_OBJECT 宏的類生成另一個含有元對象代碼的 C++源文件。這個生成的源文件可以被類的源文件包含( include)到或者和這個類的實現(xiàn)一起編譯和連接。 除了提供對象間通訊的信號和槽機制之外, QObject中的元對象代碼實現(xiàn)其它特征: ( 1) className()函數(shù)在運行的時候以字符串返回類的名稱,不需要 C++編譯器中的本地運行類型信息( RTTI)的支持。 ( 2) inherits()函數(shù)返回這個對象是否是一個繼承于 QObject 繼承樹中一個特定類的類的實例。 ( 3) tr()和 trUtf8() 兩個函數(shù)是用于國際化中的字符串翻譯。 ( 4) setProperty()函數(shù)和 property()函數(shù),這兩個函數(shù)是用 來通過名中北大學信息商務學院 2020 屆畢業(yè)設計說明書 第 10 頁 共 27 頁 稱動態(tài)設置和獲得對象屬性的。 ( 5) metaObject()函數(shù)返回這個類所關(guān)聯(lián)的元對象。 雖然使用 QObject 作為一個基類而不使用 Q_OBJECT 宏和元對象代碼是可以的,但是如果 Q_OBJECT 宏沒有被使用,那么這里的信號和槽以及其它特征描述都不會被提供。根據(jù)元對象系統(tǒng)的觀點,一個沒有元代碼的 QObject 的子類和它含有元對象代碼的最近的祖先相同。舉例來說就是, className()將不會返回你的類的實際名稱,返回的是它的這個祖先的名稱。故強烈建議 QObject 的所有子類使用Q_OBJECT 宏,而不管它們是否實際使用了信號、槽和屬性 [16]。 3 開發(fā)軟硬件環(huán)境介紹 Linux 系統(tǒng)上有很多基本的開發(fā)工具,通過這些基本開發(fā)工具,可構(gòu)成簡單的開發(fā)環(huán)境。但在純命令模式下編輯源代碼和調(diào)試軟件并不方便,特別是開發(fā)大型復中北大學信息商務學院 2020 屆畢業(yè)設計說明書 第 11 頁 共 27 頁 雜軟件。 虛擬機技術(shù) 虛擬機應用概述 為了更好的模擬仿真程序在開發(fā)板等便攜式 Linux 環(huán)境下順利運行,必須選定合適的虛擬機與 Linux 系統(tǒng),同時在虛擬機的 Linux 系統(tǒng)環(huán)境下搭建出合適的交叉編譯環(huán)境,實行交叉編譯的過程。 所謂虛擬 機,顧名思義,就是指一臺虛擬的計算機。它的虛擬的含義,是相對于日常使用的物理計算機來講的。物理計算機是實際存在的, CPU、內(nèi)部存儲器和輸入 /輸出設備是電子計算機的三大核心部件。硬盤、內(nèi)存等等,這些設備都可以實實在在地接觸到。而虛擬機,則是一種被虛擬化的技術(shù),虛擬機中的 CPU、內(nèi)存等硬件設備都看不見,但是卻都是可以實際使用的,可以使用虛擬機中的硬盤來存儲數(shù)據(jù),使用虛擬機中的網(wǎng)卡來連接網(wǎng)絡,其實這些功能都是由程序模擬出來的,但是在使用過程中,并沒有感覺到和真實的計算機有什么不同,這就是虛擬機技術(shù)。而虛擬機技術(shù)最 直接的應用,就是虛擬機軟件。其最大的作用就是在一臺普通計算機上模擬出另外一臺乃至數(shù)臺能夠單獨運行的操作系統(tǒng),甚至還可以將這幾個操作系統(tǒng)連成一個虛擬的局域網(wǎng)絡 [21] 。 虛擬機 vmware Vmware 穩(wěn)定性和功能的強大,但是對資源要求比較高。需要比較多的內(nèi)存,性能比較強勁的系統(tǒng)的最佳選擇。 vmware 的設計思想是用用軟件模擬所有的硬件環(huán)境,所以性能穩(wěn)定,客戶操作系統(tǒng)無法感覺到自己運行在一個模擬環(huán)境里。只要硬件資源允許,可以運作多個客戶操作系統(tǒng)。對圖形和多媒體效果的支持比較好,最新版已經(jīng)在 一定程度上支持 directX,不過該選項是隱藏的,如果需要使用,可以手工編輯配置文件打開。目前對 directX 的支持還不是特別成熟,但是已經(jīng)可用。對網(wǎng)絡的支持也是最好的,有多種模擬網(wǎng)絡設備的模式,還可以添加多個虛擬網(wǎng)卡,組建簡單的局域網(wǎng),對學習網(wǎng)絡知識很有好處。不過 vmware 啟動就會占用分配給虛擬機的一大塊內(nèi)存,如果只是虛擬一個沒有圖形界面的 Linux 或 BSD,那么可以
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1