qml入門教程 使用Qt開發(fā)跨平臺桌面應(yīng)用時(shí),應(yīng)該選擇widgets還是qml?
使用Qt開發(fā)跨平臺桌面應(yīng)用時(shí),應(yīng)該選擇widgets還是qml?這取決于你在哪里。如果它是一個(gè)專業(yè)的工具,如編輯器和設(shè)計(jì)器,你不需要太多花哨的東西,只要使用widget。如果是做網(wǎng)易云音樂這樣好看、輕
使用Qt開發(fā)跨平臺桌面應(yīng)用時(shí),應(yīng)該選擇widgets還是qml?
這取決于你在哪里。如果它是一個(gè)專業(yè)的工具,如編輯器和設(shè)計(jì)器,你不需要太多花哨的東西,只要使用widget。如果是做網(wǎng)易云音樂這樣好看、輕量級的軟件,使用QML。盡可能的酷。
為什么Qt框架不是很流行?
在回答問題之前,讓我們得出一個(gè)結(jié)論。其實(shí)QT在C領(lǐng)域是非常好的,玩C,如果你沒有聽說過QT,那么我可能會懷疑你的專業(yè)水平。如果GUI可用,則QT可用。如果可以使用嵌入式,QT也可以使用。它也適用于金融、工業(yè)、電力、視頻監(jiān)控等行業(yè)。為什么它會給人們一種錯(cuò)覺,認(rèn)為QT框架不是很流行?
最后,附加了一個(gè)基于QT的QSS的PC客戶端界面皮膚渲染。
這就是我的觀點(diǎn)。如果你喜歡,就喜歡它
QML價(jià)值何在?
為此,QML只能做UI。但是在QML的背后,有兩個(gè)大頭,C/JS,作為技術(shù)支持。可以說,沒有軟件做不到。
從易用性的角度來看,QML是最適合UI的工具。我已經(jīng)使用QML四年了。
QML是一種聲明性UI描述語言,這種設(shè)計(jì)非常具有前瞻性。
多年來,Qml就像兩顆豌豆一樣。谷歌在2018年提出的flatter和蘋果在2019年提出的SwiftUI都是聲明性的UI描述語言。有些概念與Qml完全相同。
QML的缺點(diǎn)是沒有像Google/apple這樣的大公司來推廣它。
如何用qml做界面,用C 實(shí)現(xiàn)業(yè)務(wù)邏輯?
首先,如果使用QML作為頁并且C實(shí)現(xiàn)邏輯,則必須有一個(gè)注冊為QML類型的C類。例如,如果要顯示一列數(shù)據(jù),那么好的QML使用listview,并且數(shù)據(jù)源listview的模型可以是由C注冊為QML的類型,例如qsstringlist、qlist<qobject*>、qabstractemmodel等(可以在文檔中將C模型與QT快速視圖一起使用中找到)。更進(jìn)一步說,許多類型的QML是由C實(shí)現(xiàn)的,因此QML編寫的代碼可以由C實(shí)現(xiàn),但是QML是封裝的,可以由您使用。例如,如果QML類型的folderlistmodel真的知道QT,那么它可以完全封裝一個(gè)模型來實(shí)現(xiàn)folderlistmodel的功能,這樣可能會更方便。
用C編寫QT實(shí)例QML擴(kuò)展可以幫助解決問題。我可以自己讀。
您需要知道qmlregistertype方法。你可以在文件里查到。
要在C中實(shí)現(xiàn)業(yè)務(wù)邏輯,您需要了解QT或與C中的邏輯相關(guān)的類。例如,如果文件操作要使用qfile。
事實(shí)上,一些業(yè)務(wù)邏輯可以使用JS直接在QML中編寫。就像一次點(diǎn)擊事件。
我已經(jīng)第三次回答這個(gè)問題了。。。沒有你想的那么難,關(guān)鍵是要寫好C
使用QML開發(fā)界面有以下優(yōu)點(diǎn):
QML非常靈活,可以做出非常酷的效果,比如QQ、360、thunderbolt等
QML是一種標(biāo)記語言,很容易寫和讀,大大提高了開發(fā)和維護(hù)的效率。
QML界面簡潔大氣,有很多動畫,適合移動終端。
不同平臺上的QML使用相同的渲染機(jī)制,界面效果一致,不會隨操作系統(tǒng)的不同而改變。
qml優(yōu)勢是什么?
QML開發(fā)接口實(shí)際上基于qgraphicsview的體系結(jié)構(gòu)。QML開發(fā)接口的優(yōu)點(diǎn)是開發(fā)周期短(如果你熟悉CSS的話),可移植性強(qiáng)(因?yàn)槟憧梢园阉龀蒕ML插件,甚至可以把它作為腳本放到一個(gè)文件中,這樣可以方便其他程序加載,但是你不需要和其他非QML模塊過多的通信),QML的接口是更有質(zhì)感的QWidget的優(yōu)點(diǎn)是它很容易與其他非GUI模塊交互。您不需要使用聲明性模塊中的類。