![](https://habrastorage.org/getpro/habr/post_images/7c1/c7a/7f6/7c1c7a7f6be6798d78be908d409003b6.png)
1日かそこらの断食の後、私はカルマの漏れに気づき始めたので、記事と主観性でおそらく受け入れられないスタイルのプレゼンテーションをおadvanceびします
こんにちは、Habrahabr!
最近、私は工場でのQtテーマの人気に注意を向けざるを得ませんでしたが、それにもかかわらず、人々は率直に言って理解できないことを言うコメントで会い続けています。 この投稿では、Qtについての小さな誤解を払拭し、Java / Obj-C / .NETから柔らかくてふわふわしたQtに移行する理由を伝えたかったのです。
カットの下では、 最も素晴らしいアプリケーション開発フレームワークを犠牲にして、多くの印象、主観性、謙虚な意見があります。 しかし、私の記事が少なくとも技術的に有用な意味を獲得できるように、興味深いものをいくつか追加しようとします。 楽しく読んで楽しんでいただければ幸いです。
さあ、行きましょうか?
メッシュ番号1。 C ++ API
Qtが非常に便利なAPIを持っていることは秘密ではありません。具体的には、qtbaseモジュールにはほとんどの日常的なタスクに十分な数のクラスが含まれています( QtはGUIフレームワーク以上のものです)。 3年前の記事で既にtytskというSTLコンテナのラッパーについて話しました。 文字列を操作したり、出力をデバッグしたりするためのクラスや、その他多くの多くのものも含まれています。
QString fruits = "apple, banana, orange, banana"; QStringList fruitsList = fruits.split(", "); qDebug() << fruitsList; // [ "apple", "banana", "orange", "banana" ] fruitsList.removeDuplicates(); fruits = fruitsList.join(", "); qDebug() << fruits; // "apple, banana, orange"
, Qt XML, ( - MVC), OpenGL, /- (Phonon), , WebKit2. , — 90% , *.
C++, , Qt - . , .
№2. Qt Quick
Qt Quick — . QML (, , ), JavaScript, . , , , JavaScript. , ( Qt Project — ).
![image](http://qt-project.org/doc/qt-5/images/declarative-tutorial2.png)
import QtQuick 2.0 Rectangle { id: page width: 320; height: 480 color: "lightgray" Text { id: helloText text: "Hello world!" y: 30 anchors.horizontalCenter: page.horizontalCenter font.pointSize: 24; font.bold: true } Grid { id: colorPicker x: 4; anchors.bottom: page.bottom; anchors.bottomMargin: 4 rows: 2; columns: 3; spacing: 3 Cell { cellColor: "red"; onClicked: helloText.color = cellColor } Cell { cellColor: "green"; onClicked: helloText.color = cellColor } Cell { cellColor: "blue"; onClicked: helloText.color = cellColor } Cell { cellColor: "yellow"; onClicked: helloText.color = cellColor } Cell { cellColor: "steelblue"; onClicked: helloText.color = cellColor } Cell { cellColor: "black"; onClicked: helloText.color = cellColor } } }
Cell
import QtQuick 2.0 Item { id: container property alias cellColor: rectangle.color signal clicked(color cellColor) width: 40; height: 25 Rectangle { id: rectangle border.color: "white" anchors.fill: parent } MouseArea { anchors.fill: parent onClicked: container.clicked(container.cellColor) } }
++ . , ? — , . , QML ++. Qt Software — , .
№3.
. , Qt — 5 . Qt — Qt Developer Days Qt Contributors' Summit. , , — , . «» Qt — , 10 . , — .
![](http://habrastorage.org/files/302/459/dae/302459dae0534a7093d6798a0504275e.jpg)
, . Qt Project , . , , , Qt.
№4. code review
, Digia (. +), KDAB, ICS -. Gitorious — . , — ( , — ) — ,
![](http://habrastorage.org/files/984/447/295/9844472952134dffaad49a4d6d4b815f.png)
, , qtbase, — .
№5.
Qt , 90-. , Trolltech Nokia, Digia. , . (++ , QWidget), . , , — Qt Creator, Qt !
![](http://habrastorage.org/files/244/fcf/f28/244fcff2804d43cca7a2d98fbea67d8e.png)
^ Qt Creator,
, , , , codebase — ( ). .
, iOS, Android, Windows Phone, !
, Qt — , .
!
, namespace.