Qtのデザイナープラグインは1-ロードコントロールのプロパティを書きます

I.はじめに

プラグインが機能を介して取得するために、全財産デザイナーの最初のステップであるロード、ロードされていないプラグインのコントロール、確かに必要な、制御不能にロードされたダイナミックライブラリから、演奏に行くことができないプレイしないの背後に得ることはありません私はこのの何か非常に強い反射を感じたとき、DLLの負荷制御を読み出すことができた、今のQtを使用して、Qtは、反射を発見した前に反射し、.NET開発者が行っている、おそらくこのようなものは、主要な開発言語プラットフォームを持つことができますバーは、Qtの反射対応するクラスと呼ばれるQMetaObjectは、本当に強力、実際には、全体のQt開発フレームワークは、私はQtの開発を回したので、主に彼女と恋に落ちた、超強力で、GUI開発フレームワーク、他のクロスプラットフォームプラットフォームの前に、スラグにはQt秒となり、クロスプラットフォームQtは、メモリ・ストレージ・スペースのメガバイト数十人が、特に組み込みLinuxで、このリソースかなり緊迫した状況を実行するために、疑いを超えて、Qtの性能を再生します極端な。

経験住所:https://pan.baidu.com/s/1A5Gd77kExm8Co5ckT51vvQ抽出コード:877pファイル:実行可能ファイルを.zipファイル

第二に、図の効果。

3つの特徴

  1. すべてのコントロールは自動的にプラグインがリストファイル、120以上のデフォルトの組み込みコントロールを生成しロードします。
  2. キャンバスをドラッグすると、自動的に対応する制御、WYSIWYGを生成します。
  3. バーの中国の財産権、対応するプロパティを変更するには、すぐに白の使用に非常に適し、シンプルで直感的な、対応する選択制御に適用されます。
  4. 元のテキスト翻訳属性フィールドのマッピングメカニズム、高効率で、簡単にプロパティバー他の言語を拡張することができます。
  5. 自動的にドロップダウンボックス列挙値などを含む、右欄に示したすべてのコントロールとプロパティのプロパティを抽出します。
  6. 手動でのサポートは、プラグインファイルインポートプラグインで外部ファイルを選択します。
  7. すべてのコントロールは、現在のキャンバスの構成情報はXMLファイルにエクスポートすることができます。
  8. 手動でXMLファイルに基づいてxmlファイルのオープンレイアウト制御、自動負荷制御を選択することができます。
  9. ボックスのアナログデータ、テキスト入力ボックスを、スライダーを引っ張って確認することができ、3つの方法でデータ・アプリケーションは、すべてのコントロールを生成します。
  10. コントロールは、左右の微調整をすることができ、キーボードの上下位置は、任意の解像度に適応サイズを変更引っ張っ8つの方向をサポートしています。
  11. 彼らは、3通りの方法で収集されたネットワーク、データベース・データ・セットを収集し、シリアルコレクションを開きました。
  12. コードは、非常に簡潔な、非常に詳細なメモであるプロトタイプとして構成することができ、自分自身のより多くの機能を開発します。
  13. 純粋なQtの中で書かれた、Qtはコンパイラ+任意の+任意のシステムの任意のバージョンをサポートしています。

第四に、コアコード

void frmMain::initPlugin()
{
    //载入默认的插件
#if defined(Q_OS_WIN)
    QString pluginName = QString("%1/quc.dll").arg(qApp->applicationDirPath());
#elif defined(Q_OS_UNIX)
    QString pluginName = QString("%1/libquc.so").arg(qApp->applicationDirPath());
#elif defined(Q_OS_MAC)
    QString pluginName = QString("%1/libquc.dylib").arg(qApp->applicationDirPath());
#endif
    loadPlugin(pluginName);
    //载入默认的控件xml数据
    openFile(qApp->applicationDirPath() + "/quc.xml");

    qApp->processEvents();
    ui->listWidget->verticalScrollBar()->setValue(0);
}

void frmMain::loadPlugin(const QString &fileName)
{
    openPlugin(fileName);
    this->setWindowTitle(QString("自定义控件属性设计器(共 %1 个控件)(QQ:517216493)").arg(ui->listWidget->count()));
}

void frmMain::openPlugin(const QString &fileName)
{
    qDeleteAll(listWidgets);
    listWidgets.clear();
    listNames.clear();
    ui->listWidget->clear();

    //加载自定义控件插件集合信息,包括获得类名+图标
    QPluginLoader loader(fileName);
    if (loader.load()) {
        QObject *plugin = loader.instance();

        //获取插件容器,然后逐个遍历容器找出单个插件
        QDesignerCustomWidgetCollectionInterface *interfaces = qobject_cast<QDesignerCustomWidgetCollectionInterface *>(plugin);
        if (interfaces)  {
            listWidgets = interfaces->customWidgets();
            int count = listWidgets.count();
            for (int i = 0; i < count; i++) {
                QIcon icon = listWidgets.at(i)->icon();
                QString className = listWidgets.at(i)->name();

                QListWidgetItem *item = new QListWidgetItem(ui->listWidget);
                item->setText(className);
                item->setIcon(icon);
                listNames << className;
            }
        }

        //获取所有插件的类名
        const QObjectList objList = plugin->children();
        foreach (QObject *obj, objList) {
            QString className = obj->metaObject()->className();
            //qDebug() << className;
        }
    }
}

第五に、コントロールを導入

  1. 150以上の絶妙な制御、ように太陰暦、セレクタをスライドさせ、ボタンを強調表示し、ダッシュボードのさまざま、プログレスバー、ボール、コンパス、グラフ、スケール、温度計、ナビゲーションバー、ナビゲーションバー、flatuiの進行を覆い。コントロールの統合の数よりもはるかに多くのQWT。
  2. 各クラスは、以下のプロジェクトのソースコード形式に統合個々の制御を容易にするために、ゼロが符号量を達成するために、各制御ファイルおよびヘッダファイルを結合する、別の対照として、独立して他のファイルとは無関係であることができます。QWT性の高い結合されたコントロールクラスを、連動、すべてのコードが含まれている必要があり、コントロールのいずれかを使用します。
  3. 、描画するために、任意のQtバージョンQt4.6 Qt5.12などmingwの、MSVC、GCCコンパイラのサポートをサポートするために、そのような窓+ Linuxの+マック+文字化けしません組み込みLinuxのような任意のオペレーティングシステムをサポートするすべての純粋なQtの、QWidgetの+ QPainterのを書きます直接のQt Creatorを、組み込みコントロールに統合されており、同じを使用することができ、効果のほとんどは、限り、いくつかのプロパティが設定されているように非常に便利です。
  4. 各制御に対応する制御を含有するDEMO別のソースは、便利な参照を有します。また、すべてのコントロールDEMOの統合された使用を提供します。
  5. 各コントロールのソースコードは、中国の注釈を詳細なカスタムコントロールを書くことを学ぶのは簡単、統一された設計仕様に基づいて作成されています。
  6. 各コントロールのデフォルトの色とデモに対応する色がとても美しいです。
  7. 130以上の可視制御六の不可視コントロール。
  8. 一部のコントロールは、スタイルのスタイルの選択、複数の選択肢のスタイルインジケータを数多く提供しています。
  9. すべてのコントロールは、適応伸ばしフォームを変更します。
  10. ドラッグデザインをサポートする統合デザインカスタム属性、WYSIWYGは、XML形式でインポートおよびエクスポートをサポートしています。
  11. デモに付属しているActiveXコントロールは、すべてのコントロールは、ブラウザのIEで直接実行することができます。
  12. Fontawesome統合グラフィックスフォント+グラフィックフォントの何百ものAlibabaのiconfontコレクション、フォント楽しいグラフィックがもたらします。
  13. 最終的にはすべてのコントロールと(などのdllかそこら、)ダイナミックライブラリファイルを生成するには、ドラッグでの使用のために設計されたqtcreatorに直接統合することができます。
  14. 次に、ユーザは、大きな需要がある場合は、既にQMLバージョンでは、後者は、PyQtはバージョンを検討します。
  15. 任意の制限なしカスタムオープン動的ライブラリ内のプラグイン(永久無料)、バックドア、使いやすさ。
  16. qt5.12.3 msvc2017 32 + 64 mingwの32 + 64内を含む26現在利用可能バージョンのDLL、。
  17. コントロールを向上させ、コントロールを改善するために、随時、定期的に更新SDK、すべての提案を歓迎するために、ありがとうございました!
  18. Qtの入門本は、「Qtの創造主クイックスタート」「Qt5プログラミングエントリのフオYafei」、Qtの公式の高度な書籍の提言「C ++ GUI Qt4をプログラミングをお勧めします。」
  19. 生涯の恩恵を受け、「プログラマの嘘」を強くお勧めプログラマ自己規律と計画ブックシリーズ「プログラマの成長コース」、「悲しみのプログラマ」、!
  20. SDKのダウンロードリンク:https://pan.baidu.com/s/1A5Gd77kExm8Co5ckT51vvQ抽出コード:877p
  21. リンクは、動的ライブラリファイルのさまざまなバージョン、すべてのコントロールのヘッダファイル、デモの使用、カスタムコントロール+プロパティのデザイナーに含まれてダウンロードしてください。
  22. ウィジェットバージョン(QQ:517216493)QMLバージョン(QQ:373955953)sambongラクダ(QQ:278969898)。
  23. Qtの高度な列はほとんどTaogeの道を知っているhttps://zhuanlan.zhihu.com/TaoQt
  24. スキルを書くようこそ懸念公共マイクロチャネル番号] [効率的なプログラマー、コンテンツC ++ / Pythonの、学習、人気の高い技術、キャリア開発、乾燥品の多くは、多くの利益をもたらします!

おすすめ

転載: www.cnblogs.com/feiyangqingyun/p/11489977.html