1. 程式人生 > >qt學習心得及總結

qt學習心得及總結

其實自己在用qtcreator開發有很久了,只知道怎麼去使用deisgner設計介面,怎樣用assistant手冊查詢自己需要的知識解決專案上需要完成的問題,並沒有去真正的去了解這個qt底層是呼叫什麼;在window和linux、android、ios等作業系統都可用他開發出想要的東西,感覺強強的。。。,今天在家學習,順便了解了qt在不同的平臺做的qt,底層呼叫的介面get點東西,記下來

很多人都知道,平臺不同,開發圖形介面時呼叫圖形介面的介面也不同;對於現在很多軟體公司想做的產品都是跨平臺的,可想對公司來說就得投入更多的人力和時間開發不同的平臺的產品;而qt就可以做到(當然還有別的IDE),qt的價值主要在跨平臺上,能在不同平臺呼叫不同的介面,一套程式碼可以在不同的環境編譯執行,得到的圖形介面一樣,主要是qt在應用程式之下,圖形裝置介面之上做的這麼一個軟體;

個人覺得qt的存在主要用途還是在圖形介面這塊;和vs裡的介面設計一樣方便,拖拽幾個控制元件就可以看到效果,當然qt做別的模組也很方便。

qt之所以可以跨平臺,是因為在不同的平臺呼叫該平臺的介面,比如在window中使用的qt IDE,和MFC的級別相匹配(MFC 微軟基礎類庫 Microsoft Foundation Classes ,以C++類的形式封裝了Window API幷包含一個應用程式框架,減少開發人員的工作量),他們底層呼叫的介面都是win32 API的介面,說到win32 API也就是 Microsoft 32位平臺的應用程式程式設計介面(Application Programming Interface).所有在win32平臺上執行的應用程式都可以呼叫這些函式;這裡面都是C介面的函式,介面太多了,比想象中的多;win32底層呼叫的是GDI介面(接著說說GDI:圖形裝置介面 Graphics Device Interface,主要任務是負責系統與繪圖程式之間的資訊交換,處理所有window程式的圖形和影象輸出,開發人員無需關心硬體裝置正常驅動,就可以將應用程式的輸出轉化為硬體裝置上的輸出和構成),大概就是這幾層的關係了。

在linux/unix中,qt的底層呼叫GTK(GIMP Toolkit是一套原始碼以LGPL許可協議分發,跨平臺的圖形工具包。最初是為GIMP(GNU Image Manipulation Program)寫的,已成為一個功能強大,設計靈活的一個通用圖形庫,也有很多平臺版本),在GTK的底層是 X Window(X Window圖形使用者介面,是一種計算機軟體系統和網路協議,提供了一個基礎的圖形使用者介面和豐富的輸入裝置能力聯網計算機其中軟體編寫使用廣義的命令集,它建立一個硬體抽象層,允許裝置獨立性和重用方案的任何計算機實現,最初是1984年麻省理工學院的研究成果,之後變成UNIX 、類UNIX、以及OpenVMS等作業系統所一致使用的標準話軟體工具包及現實框架的運作協議

)

在IBM計算機裡面底層呼叫的是Motif(Motif 最初是由 OSF(開放基金協會)開發的一個工業標準的GUI(圖形使用者介面)。1996年,OSF 與 X/Open 合併為 Open Group,1997年初,X 聯盟結束,並將其歸屬的專案移交給 Open Group。Open Group 繼續開發和支援X視窗系統,Motif,CDE,和其他技術。2000年5月15日,Open Group 使用公共許可證向開放原始碼團體釋出了 Motif 的原始碼。在開放系統(如Linux)上,可以使用免費的 Motif),在Motif下面好像也是X Window;

相關推薦

qt學習心得總結

其實自己在用qtcreator開發有很久了,只知道怎麼去使用deisgner設計介面,怎樣用assistant手冊查詢自己需要的知識解決專案上需要完成的問題,並沒有去真正的去了解這個qt底層是呼叫什麼;在window和linux、android、ios等作業系統都可用他開發

使用php-amqplib連接rabbitMQ 學習筆記總結

upd echo 密碼 分發 rop 必須 mco fan span 1、使用composer安裝php-amqplib 在你的項目中添加一個 composer.json文件: { "require": { "php-amqplib/php-am

20165221 JAVA第一周學習心得體會

文件中 其中 代碼 簡易 碼雲 不常用 應用 標準 www. JAVA入門的理論學習 在JAVA2使用教程的網課學中,分為以下幾個模塊講解的 JAVA的地位 JAVA的特點 安裝JDK(Java Develepement Kit) Java程序的開發步驟 簡單的Java應

OpenGL陰影添加學習材料總結

core mas 總結 https art swe sweet .net 中文 學習材料 PBR基於物理的實時渲染采用了更符合物理學規律的方式來模擬光線,通過模擬虛擬物體表面的粗糙程度,來計算出射該物體的光線呈現一個怎樣的方式。PBR材料的三個主要參數稱為:反照率、粗糙度、

QT設計】QT學習心得

1效果 2說明:環境vs2013+QT5.5 小白學QT,ui先畫介面,槽函式放實現功能函式,最後連結槽函式與功能函式。 第一步:設計介面 第二步:.hpp的class中新增槽函式 private slots: 定義槽函式 第三步:.cpp中 實現槽函式,並且連結槽函式與訊號 ui.

springMVC學習心得手寫springMVC簡單實現

springMVC學習心得及手寫springMVC簡單實現 Spring 是一個企業級開發框架,為解決企業級專案開發過於複雜而建立的,框架的主要優勢之一就是分層架構,允許開發者自主選擇元件。 Spring 的兩大核心機制是 IoC(控制反轉)和 AOP(面向切面程式設計),從開發的角度

機器學習心得體會總結

第一:線性代數是把複雜問題簡單化解決,但是簡單問題已經很複雜了。 第二:國內還沒有一本關於機器學習講得連老百姓都能看得明白的書籍。 第三:克拉默法則、逆矩陣、初等變換都可以求解方程Ax=b,後者方法更簡單。

SVM的一些學習心得案例(Python程式碼)實現

1、基本概念 向量的內積即一個向量在另一個向量上的投影乘上被投影向量的模,上圖不管是a投影在b上,還是b投影在a上,其結果是一樣的,原理參照 B站上 a∙b = (a1e1 + a2e2)∙(b1e1 + b2e2)            = a1b1e1e1 

jrtplib學習目錄總結

    RTP(實時傳輸協議)一般比較少單獨的使用,它一般會與其他的協議一同執行。比如RTSP(實時流傳輸協議)它就同時包含了RTP,RTCP和RTSP協議在裡面。但是在某些系統資源非常少的系統,RTP

java web學習心得總結(1)——jsp基本語法

java web自學快三個月了,前面的基礎知識都忘了,以後每天寫一篇部落格總結一下. 或者關注下我的新浪微博:Mr翅膀君 一.page指令 1.language屬性 <%@ page language="java" import="java.util.*" page

“全棧2019”113篇Java基礎學習資料總結

http 區別 super關鍵字 info final關鍵字 控制 一個 常量 com 難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文鏈接 “全棧2019”Java第一

USB匯流排學習心得資料

看了一下usb協議資料,對usb原理有了一個簡單的瞭解。 usb匯流排和pci匯流排一樣,匯流排的作用都是提供通道,各種裝置利用匯流排通道來實現自己的功能。 usb匯流排的主要特點:是一個星形的共享性匯流排,匯流排控制器逐個的詢問總線上的裝置是否需要資料收

python學習心得總結

本週主要學習了類和麵向物件的知識,學得容易,靈活運用卻很難,還需要多加練習孰能生巧。 函式 引數、預設值、可變引數、關鍵字引數、命名關鍵字引數 可變引數:*args 關鍵字引數:**kwargs 返回值 巢狀定義 高階函式、λ函式(匿名函式)、

V4L2視訊採集與視訊編碼學習目錄總結

    我們現在平時所看到的視訊,從攝像頭資料採集到最後顯示頻顯示出來,初略的歸納經過了下面的幾個環節:攝像頭採集影象資料->將影象資料進行壓縮->將壓縮的影象資料封裝成視訊格式。視訊格式檔案->去除視訊格式封裝->解壓縮影象資料->得到一幀影象

QT學習心得(1)--初學者

目前學習QT,我想實現按一個按鈕,調出檔案的對話方塊,選中檔名,供我進一步操作。可以在該按鈕對應的Slot函式中加入以下語句: QString s=QFileDialog::getOpenFileName("/anni123/project","AnyFile(*.*)",t

FPGA學習心得(flash讀寫,+lwip+資料傳送等問題)

前段時間應老闆的專案需求,對硬體絲毫不懂得我開始接觸edk硬體程式設計,感覺這段時間跟硬體打交道,自己都老了不少。首先,硬體程式設計編譯很慢,編譯一次有時候得10-20分鐘,尤其是用verilog寫得程式比較大的時候。其次,除錯非常麻煩,不能像利用c或者c#那樣斷點除錯了,

“全棧2019”22篇Java異常學習資料總結

學習計劃 分鐘 轉載 學習 tell intellij 總結 https 聲明 難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文鏈接 “全棧2019”22篇Java異常學

QT樹形控件學習心得

目錄 樹形控件 亂碼 行程 中文 rom 聯動 程序 事件 1.中文亂碼問題。QT使用的是UTF-8,而vs使用的是GB2312。所以會出現亂碼。解決方法是 QString::fromLocal8Bit("中文") 。 2.vs編程成功後可以運行程序,但是單獨運行exe時,

Qt學習:QLineEdit的用法總結

window 軟件 編程 計算機 qt 在使用Qt編寫軟件時,QLineEdit這個部件經常會被用到,大部分用在登錄界面的輸入框,所以這個部件非常的重要.常用成員函數: 1.void setClearButtonEnabled(bool); //是否設置一個清空按鈕. 點擊這個清空按鈕後,

Qt學習: QCloseEvent關閉事件的使用代碼示例

window 軟件 編程 計算機 qt QCloseEvent事件是指,當你鼠標點擊窗口右上角的關閉按鈕時,所觸發的函數.如果你沒有重寫virtual closeEvent(QCloseEvent*event);這個虛函數的話,系統是默認接受關閉事件的,所以就會關閉窗體,但有的時候,比如在