(2) qml誕生的原因 和Qt Creator開發環境的介紹

文章目錄

  • qml誕生原因
    • Qt Quick應?程序
    • Qt Creator環境
        • 1、MSVC
        • 2、MinGW
        • MSVC的優缺點
        • MinGW的優缺點
      • 最后的選擇
      • 延伸閱讀
    • 一些常用的快捷鍵
    • 統一格式化代碼
    • 統一qml 語言的格式
    • Locator 定位器
    • 幫助

qml誕生原因

可以在Qt5中開發的不同類型的經典應?程序。桌?應?程
序正在發?著改變,不久之后移動設備將會為占據我們的世界。移動設備的
?戶界?設計?常不同。它們相對于桌?應?程序更加簡潔,只需要專注的
做?件事情。動畫效果是?個?常重要的部分,?戶界?需要?動活潑。傳
統的Qt技術已經不適于這些市場了。
由此qml誕生

Qt Quick應?程序

在現代的軟件開發中有?個內在的沖突,?戶界?的改變速度遠遠?于我們
的后端服務。在傳統的技術中我們開發的前端需要與后端保持相同的步調。
當?個項目在開發時?戶想要改變?戶界?,或者在?個項目中開發?個?
戶界?的想法就會引發這個沖突。敏捷項項目需要敏捷的?法。
Qt Quick 提供了?個類似HTML聲明語?的環境應?程序作為你的?戶界?
前端(the front-end),在你的后端使?本地的c++代碼。這樣允許你在兩端
都游刃有余

Qt Creator環境

需要先到環境里面去構建套件kit
在這里插入圖片描述
鏈接到我們下載qt的目錄 會自動識別該目錄下面的編譯套件 常用的有mingw和 msvc
配置相關的套件
在這里插入圖片描述

1、MSVC

即Microsoft Visual C++ Compiler,即微軟自己的編譯器。

我們下載Windows下的OpenCV時,解壓后里面有兩個文件夾,一個是build,一個是source,build這個文件夾實際上是官方已經提前給我們編譯好了的庫,會帶兩個文件夾VC14,VC15(分別與Visual Studio的版本有對應關系),這兩個文件夾下的庫可以直接運行不需要編譯將VS作為Qt的開發環境也是使用這個編譯器的緣故,但是,使用的必須是msvc編譯器,不能夠跨平臺。

2、MinGW

我們都知道GNU在Linux下面鼎鼎大名的gcc/g++,MinGW則是指Minimalist GNU for Windows的縮寫它是將GNU開發工具移植到Win32平臺下的產物,即一套Windows上的GNU工具集。
用其開發的程序不需要額外的第三方DLL支持就可以在Windows下運行,相對地,不使用動態庫導致的就是編譯出來的程序大很多。也是可以設置使用靜態庫的,mingw編譯器需要自己手動編譯source文件生成庫文件,mingw這個編譯器能夠跨平臺,能夠在linux、arm等平臺使用,這些平臺使用的編譯器都是g++、gcc。

MSVC的優缺點

優點:

qtcreator的debuger有功能缺陷,經常會出現變量無法查看的問題,棘手的bug還是需要在VS環境下進行調試。很多人的開發模式就是qtcreator寫代碼,VS下面做調試。

缺點:

不能跨平臺

編碼的問題,QT5的Qstring默認是UTF8格式,QT5極力推介把源碼用UTF8格式存儲。 但是MSVC只支持帶BOM的UTF8格式,qmake不支持帶BOM的UTF8格式,逼我只能用GBK么。這樣的話,用qt5,每次都要Qstring::fromLocal8bit(“我是中國人”);況且就算BOM問題解決了,源代碼是UTF8了。MSVC的執行編碼也是GBK

MinGW的優缺點

優點:

能跨平臺

缺點:

MinGW無法利用生成的dump文件在windbg或VS下面定位到出錯的代碼

Scene3D在MinGW64位Release和MinGW32位Debug模式下運行直接閃退,而64位Debug和32位Release卻正常運行。

動態刪除繼承QuickItem的對象,有幾率導致非法內存訪問,可以定位到問題在Qt源碼中Renderer中的一處

最后的選擇

到底選擇哪個版本,MinGW 比較方便,配置易上手適合初學者,MSVC功能強大,適合進階,但是具體項目上要根據依賴的第三方庫選擇版本。

如果你的第三方庫是msvc的,能可能就必須msvc,如果第三方庫是mingw的可能就必須mingw。

跨平臺開發的話,用的庫基本上一定是Linux能用的庫,而Linux能用的庫一定是在mingw下支持會比較好。(mingw甚至能 include unistd.h 之類的Linux專用頭文件),那就優選mingw。

來源:本文為CSDN博主「吻等離子」的原創文章
原文鏈接:https://blog.csdn.net/qq_43445867/article/details/127889570

延伸閱讀

Qt中的各種編譯器

1.uic:UI編譯器,將.ui文件轉化為ui_*.h文件

2.rcc:資源編譯器,將.qrc文件轉換成qrc_*.h文件

3.moc:元對象編譯器,將含有Q_OBJECT的頭文件轉換成標準.h文件

4.qmake : 把pro文件編譯成makefile文件,然后可以調用make命令

5.MSVC:微軟VC++編譯器

6.MinGW:gcc編譯器

一些常用的快捷鍵

  • Ctrl+B - 構建項目
  • Ctrl+R - 運?項目
  • Ctrl+Tab - 切換已打開的?檔
  • Ctrl+k - 打開定位器
  • Esc - 返回
  • F2 - 查找對應的符號解釋。
  • F4 -在頭?件與源?件之間切換(只對c++代碼有效)
    在這里插入圖片描述
    快捷鍵配置的位置如上

統一格式化代碼

可能需要在此處進行統一的格式化處理代碼
限制為MIME類型 :text/x-c++src; text/x-c++hdr; text/x-csrc; text/x-chdr; text/x-objcsrc; text/x-objc++src
沒有clang format 需要去網上下載一個 然后指定路徑即可
在這里插入圖片描述

統一qml 語言的格式

在這里插入圖片描述
creator 自帶格式化 qml語言的格式化 可以在 qt quick 里面去把相關的 保存時自動格式化給帶上

Locator 定位器

在這里插入圖片描述
左邊底部可以顯?彈出?系列的選項。如果你只是想搜索你項目中的?個?
件,你只需要給出?件第?個字?提?就可以了。定位器也接收通配符,?
如*main.qml也可以查找。你也可以通過前綴搜索來搜索指定內容的類型

幫助

在這里插入圖片描述
可以查找所有qt api的解釋

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20280.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20280.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20280.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

物聯網斷點續傳

斷點續傳是一種在網絡傳輸中斷后,能夠從中斷的位置繼續傳輸的技術。它可以有效地避免因為網絡不穩定、服務器故障、用戶操作等原因導致的傳輸失敗,節省了用戶的時間和流量,提高了傳輸的效率和可靠性。斷點續傳在很多場景中都有廣泛的應用&…

GIS結合物聯網:塑造智慧地球的新篇章

在信息技術飛速發展的今天,地理信息系統(GIS)與物聯網(IoT)的深度融合,正以前所未有的方式重塑著我們對世界的認知。本文將深入探討GIS與物聯網結合的原理、應用實踐以及面臨的挑戰與未來展望,共…

鄉村振興與鄉村旅游品牌化:打造具有地方特色的鄉村旅游品牌,提升鄉村旅游吸引力,促進美麗鄉村建設

目錄 一、引言 二、鄉村旅游品牌化的重要性 (一)增強鄉村旅游的辨識度 (二)提升鄉村旅游的附加值 (三)促進鄉村文化的傳承與創新 三、打造具有地方特色的鄉村旅游品牌 (一)明…

Python知識點6---列表和元組

提前說一點:如果你是專注于Python開發,那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了,而如果你和作者一樣只是操作其他技術的Python API那就足夠了。 Python的列表和和元組定義方式如下,且注意列表和元組擁有…

【深度強化學習入門:結合直覺與算法的學習之旅】

文章目錄 前言深度強化學習的關鍵要素簡單的深度Q網絡(DQN)實現分析代碼結論 前言 深度強化學習結合了深度學習的表征學習能力和強化學習的決策制定機制,這使得機器能夠在復雜環境中自我學習并做出合理的行動策略。它在游戲玩耍、自動駕駛、…

Linux實驗報告(二)——Linux系統中的常用命令

目錄 一、實驗名稱: 二、儀器、設備: 三、參考資料: 四、實驗目的: 五、實驗內容(步驟): 六、實驗數據(程序)記錄: ?編輯 ?編輯 七、實驗結果分析…

Python知識點9---推導式

提前說一點:如果你是專注于Python開發,那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了,而如果你和作者一樣只是操作其他技術的Python API那就足夠了。 Python提供的推導式,只對列表、字典、集合三種數據類型生…

公司網站模板制作

公司網站模板的制作是一項極其重要的工作,因為網站模板決定了網站的整體風格和用戶體驗。一個漂亮、易用的網站模板將會吸引更多的用戶,而一個糟糕的網站模板則會讓用戶不供選擇。下面就讓我們介紹一下公司網站模板的制作。 首先,一個好的網站…

iCold編程入門:探索未知的編程世界

iCold編程入門:探索未知的編程世界 在浩瀚的數字宇宙中,iCold編程猶如一顆璀璨的新星,吸引著無數好奇而勇敢的探險家。然而,對于初學者來說,這個神秘的世界往往充滿了未知與挑戰。今天,我們就將一同踏入這…

前端 CSS 經典:mac docker 效果

前言:瀏覽器上實現 mac docker 效果,實現思路,1. 布局,方框間距用元素代替,因為有放大縮小功能,不用元素的話,不好控制。2. 定義個 css 變量 i,用來代表放大比例。3. 確定每個元素的…

信息系統項目管理師軟考高級論文教程必過論文分享

很多人提到軟考就會想到信息系統項目管理師和系統集成項目管理工程師,這兩個不同的軟考內容的區別不僅僅在于一個是高級,一個是中級,還有一個區別是它們的考試內容也是不同的,高級的信息系統項目管理師考試多了一項論文的考試&…

K-means 聚類算法和K-means ++聚類算法詳解【5】

1、通俗易懂的講解鏈接 補充鏈接,K- means算法的K值選擇策略:鏈接一,鏈接二???????; 后續關鍵點漸次補充

MySQL入門學習-查詢進階.正則表達式

在 MySQL 中,正則表達式是用于匹配文本模式的工具。正則表達式可以用于在查詢中進行模式匹配,以便更精確地查找和操作數據。 一、以下是一些常見的查詢進階操作和正則表達式的特點、使用方法以及與其他比較和高級應用的示例: 1. LIKE操作符…

USART串口數據包

USART串口數據包 先來看兩張圖,本次程序是串口收發HEX數據包,第二種是串口收發文本數據包,之后兩個圖,展示的就是接收數據包的思路。 在PB1這里接了一個按鍵,用于控制。在串口助手,在發送模式和接收模式都…

Debian 常用命令指南:基礎篇

Debian 是一款廣泛使用的 Linux 發行版,以其穩定性和安全性著稱。對于新手來說,掌握一些常用的命令行工具是順利使用 Debian 的第一步。本篇文章將介紹一些 Debian 系統中最常用的基礎命令,幫助你更好地管理和操作你的系統。 1. 系統信息相關…

JAVA攔截器的三種實現方式

JAVA攔截器的三種實現方式 一、java原生過濾器Filter二、springMVC攔截器三、aop切面實現攔截器 一、java原生過濾器Filter /*** 自定義Filter* 對請求的header 過濾token** 過濾器Filter可以拿到原始的HTTP請求和響應的信息,* 但是拿不到你真正處理請求方法的…

Java 基礎面試300題 (141- 170 )

Java 基礎面試300題 &#xff08;141- 170 &#xff09; 141. 編譯運行以下代碼時會發生什么&#xff1f; class Mammal {} class Cat extends Mammal { } List<Mammal> list new ArrayList<Cat>();上述代碼將出現編譯錯誤。這是因為為List指定了Mammal哺乳動物…

SpringSecurity6從入門到實戰之整合原生Filter鏈

SpringSecurity6從入門到實戰之整合原生Filter鏈 DelegatingFilterProxy 從官網上來進行學習可以看到第一個類就是DelegatingFilterProxy,我們首先看看官網給下的定義. Spring提供了一個名為DelegatingFilterProxy的過濾器實現&#xff0c;它允許在Servlet容器的生命周期和Spr…

Raid的全局熱備和獨立熱備

目錄 Hot Spare背景: 1.定義與功能 2.數據存儲與容量 3.配置模式 4.數量限制&#xff1a; 5.數據重建: 6.管理與維護 實操全局熱備和獨立熱備&#xff1a; 配置全局熱備: 配置獨立熱備: Hot Spare背景: 在RAID配置中&#xff0c;Hot Spare(熱備)是一個非常重要的概念…

amis源碼 Api接口調用解析:

Amis中傳入用戶自定義fetcher(基于fetcher做接口調用)&#xff1a; 1.embed渲染時可以傳入用戶定義的fetcher(接口調用)&#xff1a; import axios from "/libs/api.request"; //自定義的fetcher調用接口&#xff08;axios調用&#xff09; { fetcher: ()>{ ……