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

正文內(nèi)容

本科畢業(yè)論文-基于qt的貪吃蛇游戲設(shè)計與實現(xiàn)(編輯修改稿)

2025-02-12 17:46 本頁面
 

【文章內(nèi)容簡介】 此,不同的操作系統(tǒng)具有特定的硬件接口形式。 實際上, BSP是一個介于操作系統(tǒng)和底層硬件之間的軟件層次,包括了系統(tǒng)中大部分與硬件聯(lián)系緊密的軟件模塊。設(shè)計一個完整的 BSP需要完成兩 部分工作: 嵌入式系統(tǒng) 的硬件初始化以及 BSP 功能,設(shè)計硬件相關(guān)的 設(shè)備驅(qū)動 。 特點 可裁剪性 支持開放性和可伸縮性的體系結(jié)構(gòu)。 強實時性 EOS實時性一般較強,可用于各種設(shè)備控制中。 統(tǒng)一的接口 提供設(shè)備統(tǒng)一的驅(qū)動接口。 北京郵電大學畢業(yè)設(shè)計 4 方便 操作方便、簡單、提供友好的圖形 GUI和圖形界面,追求易學易用。提供強大的網(wǎng)絡功能,支持 TCP/IP 協(xié)議及其他協(xié)議,提供 TCP/UDP/IP/PPP 協(xié)議支持及統(tǒng)一的 MAC訪問層接口,為各種移動計算設(shè)備預留接口。 強穩(wěn)定性,弱 交互性 嵌入式系統(tǒng)一旦開始運行就不需要用戶過多的干預、這就要負責系統(tǒng)管理的 EOS具有較強的穩(wěn)定性。嵌入式操作系統(tǒng)的用戶接口一般不提供操作命令,它通過系統(tǒng)的調(diào)用命令向用戶程序提供服務。 固化代碼 在嵌入式系統(tǒng)中,嵌入式操作系統(tǒng)和應用軟件被固化在嵌入式系統(tǒng)計算機的 ROM中。 適應性 更好的硬件適應性,也就是良好的移植性。 2 開發(fā)環(huán)境及 關(guān)鍵技術(shù) Qt Qt是諾基亞開發(fā)的一個跨平臺的 C++圖形用戶界面應用程序框架。它既可以開發(fā)GUI程式,也可用于開發(fā)非 GUI程式,比如控制臺工具和服務器。它提供給應用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所用功能。 Qt是完全面向?qū)ο蟮?,很容易擴展,并且允許真正地組件編程。 北京郵電大學畢業(yè)設(shè)計 5 它具有: ( 1) 優(yōu)良的跨平臺特性 ( 2)面向?qū)ο? ( 3)豐富的 API ( 4)大量的開發(fā)文檔 ( 5) XML 支持 ( 6) Webkit 引擎的集成,可以實現(xiàn)本地界面與 Web內(nèi)容的無縫集成 ( 7) 用戶自定義控件 ( 8)方便性 ( 9)國際化 ( 10)高性能的工具 ( 11)優(yōu)越的繪畫功能 ( 12)繪制 2D/3D 圖形功能 信號和槽機制 信號和槽作為 QT 的核心機制在 QT編程中有著廣泛的應用,要精通 QT編程就必須對信號和槽有所了解。信號和槽是一種高級接口,應用于對象之間的通信,他是 QT的核心特性,也是 QT差別于其他工具包的重要地方。信號和槽是 QT自行定義的一種通信機制,他獨立于標準的 C/C++語言,因此要正確的處理信號和槽,必須借助一個稱為 moc( Meta Object Compiler 的 QT工具,該工具是個 C++預處理程式,他為高層次的事件處理自動生成所需要的附加代碼。 在我們所熟知的非常多 GUI工具包中,窗口小部件( widget都有一個回調(diào)函數(shù)用于響應他們能觸發(fā)的每個動作,這個回調(diào)函數(shù)通常是個指向某個函數(shù)的指針。不過,在 QT中信號和槽取代了這些凌亂的函數(shù)指針,使得我們編寫這些通信程式更為簡潔明了。信號和槽能攜帶任意數(shù)量和任意類型的參數(shù),他們是類型完全安全的,不會像回調(diào)函數(shù)那樣產(chǎn)生 core dumps所有從 QObject或其子類(例如 QWidget)派生的類都能夠包含信號和槽。當對象改動 其狀態(tài)時,信號就由該對象發(fā)射( emit)出去,這就是對象所要做的全部事情,他不知道另一端是誰在接收這個信號。這就是真正的消息封裝,他確保對象被當作一個真正的軟件組件來使用。槽用于接收信號,但他們是普通的對象成員函數(shù)。一個槽并不知道是否有所有信號和自己相連接。而且,對象并不了解具體的通信機制。 你能將非常多信號和單個的槽進行連接,也能將單個的信號和非常多的槽進行連接,甚至于將一個信號和另外一個信號相連接也是可能的,這時無論第一個信號什么時候發(fā)射系統(tǒng)都將即時發(fā)射第二個信號??傊?,信號和槽構(gòu)造了一個強大的部件編程 機制。 信號 當某個信號對其客戶或所有者發(fā)生的內(nèi)部狀態(tài)發(fā)生改動,信號被一個對象發(fā)射。只有定義過這個信號的類及其派生類能夠發(fā)射這個信號。當一個信號被發(fā)射時,和其相關(guān)聯(lián)的槽將被即時執(zhí)行,就象一個正常的函數(shù)調(diào)用相同。信號 槽機制完全獨立于所有 GUI 事件循環(huán)。只有當所有的槽返回以后發(fā)射函數(shù)( emit)才返回。如果存在多個槽和某個信號相關(guān)聯(lián),那么,當這個信號被發(fā)射時,這些槽將會一個接一個地執(zhí)行,不過他們執(zhí)行的順序?qū)请S機的、不確定的,我們不能人為地指定哪個先執(zhí)行、哪個后執(zhí)行。 北京郵電大學畢業(yè)設(shè)計 6 槽函數(shù) 槽是普通的 C++成員函數(shù),能被正常調(diào)用,他們唯一的特別性就是非常多信號能和其相關(guān)聯(lián)。當和其關(guān)聯(lián)的信號被發(fā)射時,這個槽就會被調(diào)用。槽能有參數(shù),但槽的參數(shù)不能有缺省值。既然槽是普通的成員函數(shù),因此和其他的函數(shù)相同,他們也有存取權(quán)限。槽的存取權(quán)限決定了誰能夠和其相關(guān)聯(lián)。同普通的 C++成員函數(shù)相同,槽函數(shù)也分為三種類型,即 public slots、 private slots 和 protected slots。 public slots:在這個區(qū)內(nèi)聲明的槽意味著所有對象都可將信號和之相連接。這對于組件編程非常有用,你 能創(chuàng)建彼此互不了解的對象,將他們的信號和槽進行連接以便信息能夠正確的傳遞。 protected slots:在這個區(qū)內(nèi)聲明的槽意味著當前類及其子類能將信號和之相連接。這適用于那些槽,他們是類實現(xiàn)的一部分,不過其界面接口卻面向外部。 private slots:在這個區(qū)內(nèi)聲明的槽意味著只有類自己能將信號和之相連接。這適用于聯(lián)系非常緊密的類。 布局管理 窗體上的所有的控件必須有一個合適的尺寸和位置。 Qt提供了一些類負責排列窗體上的控件,主要有: QHBoxLayout, QVBoxLayout, QGridLayout, QStackLayout。 他們之間的繼承關(guān)系如圖 21所示。 圖 21 布局管理繼承關(guān)系圖 Qt中有三種方式對窗體上的控件進行布局管理:絕對位置定位( absolute positioning),手 工布局( manual layout),布局管理器( layout managers) 。 在 QT中, Layout 和 Widget是相對獨立的類,但是 Layout本身單獨存在并沒有意義,需要和 Widget配合使用。而 Widget本身不負責子控件的布局管理。你可以認為,Layout類其實只是一組預先撰寫好的代碼,在父控件尺寸變化時,根據(jù)預設(shè)參數(shù)和子控件的各種 Geometry hint,管理控件的位置和尺寸。 Layout首先是要通過 QWidget::setLayout 函數(shù),將一個 QLayout 類設(shè)置為控件的布局管理器 。這一步實際也將這個控件設(shè)置為 QLayout類的父控件。而后,通常通過QLayout::addWidget()等函數(shù),將 widget添加到 Layout類的布局管理體系中 。 但是,Layout本身并不是 Widget 的父控件,因為 QWidget 類的父控件只能是 QWidget類,所以 Layout將其管理的子控件的父控件重定向為自己的父控件。另外,因為 QWidget類本身并不是一個 QLayoutItem,而 Qlayout的管理又是以 QLayoutItem 為單位。所以,在 addWidget的操作中, QLayout還會創(chuàng) 建一個 QLayoutItem的子類 QWidgetItem 類來北京郵電大學畢業(yè)設(shè)計 7 對應的包裝代理添加進來的子控件。 QWidgetItem 對象最終會將 QLayout 布局管理體系中的布局參數(shù)信息裝換、設(shè)置到它所代理的 QWidget 對象上 在 QT下進行界面設(shè)計,可以使用水平、垂直和 Grid布局管理器來進行。水平布局管理器可以把它所管理的部件以水平的順序依次排開 。 垂直管理器類似,它可以把它所管理的部件以垂直的順序依次排開 。 Grid布局管理器可以以網(wǎng)格的形式,將它所管理的部件以一定的矩陣形式排列。在 QT下做界面設(shè)計的時候,其實無非就是利用 上面三種布局管理器來將部件進行分類和排列。 程序啟動畫面 QSplashScreen類 當程序的初始化工作比較多,程序可能啟動較長時間后,窗口才會顯示出來,用戶沒準會抱怨程序響應的慢。 為了改善用戶體驗,最好在程序初始化這段時間顯示 logo,或者其他信息提示用戶程序已啟動。 QT提供了 QSplashScreen 類,其使用方法比較簡單,下面的例子就是,當程序運行到 splash. show()。時, 就會顯示出來,當 dialog 的初始化完成,運行到 splash. finish(amp。 dialog)。時, 主窗口顯示出來,并且 啟動畫面隱藏 。 當程序啟動慢的時候,該畫面就會停留一會,也可以在圖片上顯示一下程序啟動的加載信息, 、 但是如果程序啟動很快的話,啟動圖片就會一閃而過,其實啟動畫面也出現(xiàn)了的,只是出現(xiàn)的時間比較短,如果想讓程序啟動之前畫面多停留一下,可以添加一個延時器 。 QTimer類 QTimer類提供了定時器信號和單觸發(fā)定時器。 它在內(nèi)部使用定時器事件來提供更通用的定時器。 QTimer很容易使用:創(chuàng) 建 QTimer,使用 start()來開始并且把它的 timeout()連接 到適當?shù)牟?。當這段時間過去了,它將會發(fā)射 timeout()信號。 注意當 QTimer的父對象被銷毀時,它也會被自動銷毀。 你也可以使用靜態(tài)的 singleShot()函數(shù)來創(chuàng)建單觸發(fā)定時器。 作為一個特殊情況,一旦窗口系統(tǒng)事件隊列中的所有事件都已經(jīng)被處理完,一個定時為 0 的 QTimer 就會到時間了。 這也可以用來當提供迅速的用戶界面時來做比較繁重的工作 。 二維圖形的繪制方法 Qt的二維圖形引擎是基于 QPainter類的, QPainter既可以繪制幾何圖形,也可以繪制像素映射、圖像和文字。此外, QPainter 也支持一些高級特性,例如反走樣(針對文字和圖形邊緣)、像素混合、漸變填充和矢量路徑等, QPainter也支持線性變換,例如平移、旋轉(zhuǎn)、錯切和縮放。 QPainter可以畫在 “ 繪圖設(shè)備 ” 上,例如: QWidget、 QPixmap、 QIamge或者QSvgGenerator。 QPainter 也可以與 QPrinter 一起使用來打印文件盒創(chuàng)建 PDF文檔。這意味著通常可以用相同的代碼在屏幕上顯示數(shù)據(jù),也可以生成打印形式的報告。 北京郵電大學畢業(yè)設(shè)計 8 如果要在繪圖設(shè)備(一般為窗口部件)上繪圖,只需創(chuàng)建一個 QPainter,再將指 針傳到該設(shè)備中。 使用 QPainter的 draw...()函數(shù),可以繪制各種各樣的形狀。繪制效果取決于QPainter的設(shè)置,一些是從設(shè)備中取得的,然而有些被初始化成默認值。三個主要設(shè)置是畫筆、畫刷、字體: 畫筆:用來畫線和邊緣。它包含顏色、寬度、線性、拐點風格以及連線風格。 畫刷:用來填充幾何圖形的圖案。它一般由顏色和風格組成,但同時也可以是紋理(一個不斷重復的圖像)或者是一個漸變。 字體:用來繪制文字。字體有很多屬性,包括字體族和磅值大小。 可以隨時調(diào)用 QPen、 QBrush或者 QFont對象的 setPen()、 setBrush()和 setFont()來修改這些設(shè)置。 draw...,見明知義。繪制點 drawPoint()、繪制直線 drawLine()、繪制折線drawPolyLine()、繪制多點 drawPoints()、繪制多直線 drawLines()、繪制矩形區(qū)域drawRect()、繪制圓角區(qū)域 drawRoundRect()、繪制橢圓 drawEllipse()、繪制背景圖片 drawPixmap()等! 右鍵菜單 QWidget及其子類都可有右鍵菜單,因為 QWidget有以下兩個與右鍵菜單 有關(guān)的函數(shù): Qt::ContextMenuPolicy contextMenuPolicy () const void setContextMenuPolicy ( Qt::ContextMenuPolicy policy ) 使用方式如下: 1)默認是 Qt::DefaultContextMenu。 它是利用右鍵菜單事件 contextMenuEvent()來處理( which means the contextMenuEvent() handler is called)。就是要重寫 contextMenuEvent ( QContextMenuEvent * event )函數(shù)。 2)使用 Qt::CustomContextMenu。 它是發(fā)出 QWidget::customContextMenuRequested 信號,注意僅僅只是發(fā)信號,意味著要自己寫顯示右鍵菜單的 slot。 這個信號是 QWidget 唯一與右鍵菜單有關(guān)的信號(也是自有的唯一信號),同時也是很容易被忽略的 signal: void customContextMenuRequested ( const QPoint amp。 pos ) 該信號的發(fā)出條件是: 用戶請求
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1