Qt ライジング スター プログラムの学習
序文
この研究は主に、Yuxian Cheese のブログ - CSDN ブログのメンターの新しいスター計画に従うことを目的としています。これには主に、Qt の機能、基礎となる原理とその具体的な実装を理解し、最終的にいくつかの具体的なアプリケーションを実現することが含まれます。
イベントアドレス:Rising Star Project 2023 【Qtの基本概念とシステムアーキテクチャの詳細解説と関連アプリケーション】 学習オリエンテーションの登録入口!-CSDNコミュニティ
導入
Qtとは何ですか?
Qtは、グラフィカル ユーザー インターフェイス (GUI) アプリケーション、組み込みシステム、モバイル デバイス アプリケーションなどを開発するための豊富なツールとライブラリのセットを提供する、クロスプラットフォームのC++アプリケーション開発フレームワークです。
C++ と C の主な違いは、オブジェクト指向開発とプロセス指向開発だと思います。ブロガーが以前 Java を学んだとき、オブジェクト指向についてはある程度の理解がありました。
基本的な機能
-
Qt Meta-Object System: これは Qt システムのフレームワークです。
まず、基本クラスは Qobject です。次にインスタンス化されたオブジェクトはメタ オブジェクトです。メタオブジェクトは特別なコンパイラ MOC メタオブジェクト コンパイラでコンパイルする必要があります。オブジェクトはシグナル スロット メカニズム (後述) を通じて通信できます。いくつかの Q_PROPERTY マクロ、動的オブジェクトの作成など。
-
オブジェクト間の通信メカニズム: シグナル スロット メカニズム。一方のオブジェクトはシグナル機能を持ち、もう一方のオブジェクトはスロット機能を持ち、中央は接続関数によって接続され、この 2 つがデータを受け渡すことができます。
class MySender : public QObject { signals: void mySignal(int val); } class MyReceiver : public QObject { slots: void mySlot(int val); } MySender* sender = new MySender; MyReceiver* receiver = new MyReceiver; QObject::connect(sender, SIGNAL(mySignal(int)), receiver, SLOT(mySlot(int))); ———————————————— 版权声明:本文为CSDN博主「鱼弦芝士」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/feng1790291543/article/details/131802400
Java の対応する要件に対処する方法、イベント: 各コンポーネントはイベントにバインドできます。たとえば、ボタン バインディングが押された後、イベント関数が処理のためにトリガーされます。または、オブザーバー モードでは、1 つのオブジェクトがイベントを監視できます。別のオブジェクトの状態変化に応じて反応する時間。
-
イベント駆動型プログラミング: Java イベントと同様に、イベント処理関数 (マウス クリック イベントなど) をオブジェクト内で書き換えることができ、イベント フィルタリング関数を追加してイベントを途中で傍受して処理でき、イベントを特定のオブジェクトに送信できます。
-
Qt の強力なクロスプラットフォーム機能: ただし、プラットフォーム固有の API ではなく、可能な限り Qt の API を使用する必要があります。
インストール
作成者は、インストール プロセス中に次の問題に遭遇しました。
- 5.15以降のQtバージョンはお金をかけてライセンスを購入する必要があるようで、体験できる期間は10日しかありません。そこで、戻って古いバージョンをダウンロードしました。
- インストールするときは、国内のミラーソースを選択するようにしてください。公式 Web サイトからのダウンロードは非常に遅いです。
- 追加のインストール コンポーネントを選択する場合は、2 種類の Mingw と、Qt で始まるすべてのコンポーネントを選択します。