پلاگین ها (Plugins) در Qml و ++C مفهومی نزدیک به ماژول ها دارند. با این وجود مستقل و متفاوت از آن ها هستند. بزرگترین تفاوت آن ها اینست که ماژول ها بصورت کتابخانه های استاتیک (Static libraries) به برنامه افزوده می شوند. ولی پلاگین ها بصورت کتابخانه های اشتراکی (Shared libraries) اند که در زمان اجرا (Runtime) در صورت نیاز بارگذاری (Load) می شوند.

پلاگین qml

ساخت پلاگین Qml

همانطور که گفتم پلاگین ها خیلی شبیه ماژول ها اند. بطوریکه با کمی تغییر کوچک در روند ساخت یک ماژول می توان آن را به یک پلاگین تبدیل کرد.

در ادامه ساخت یک پلاگین را از ماژول موجود بررسی می کنیم. اگر با ماژول ها و ایجاد آن ها آشنا نیستید، پیشنهاد می کنم نوشته «ماژول های Qml» را حتما بخوانید.

تبدیل ماژول به پلاگین

مثال ماژول ClockPlus نوشته ««ماژول های Qml» را در نظر بگیرید. نخست در فایل CMakeList.txt ماژول qt_add_library را حذف می کنیم. چون قرار نیست یک کتابخانه استاتیک ایجاد کنیم. سپس PLUGIN_TARGET را به qt_add_qml_module اضافه می کنیم. فایل نهایی به صورت زیر خواهد بود.

cmake_minimum_required(VERSION 3.16)
set(CMAKE_PREFIX_PATH "/home/user/Qt/6.5.3/gcc_64")
project(ClockPlusPlugin VERSION 1.0)

find_package(Qt6 REQUIRED COMPONENTS Quick)
qt_standard_project_setup()

qt_policy(SET QTP0001 NEW)
qt_add_qml_module(ClockPlus
    URI plugins.clockplus
    PLUGIN_TARGET ClockPlus
    VERSION 1.0
    QML_FILES
        ClockPlus.qml
    RESOURCES
        images/background.png
        images/hour.png
        images/minute.png
        images/second.png
    SOURCES
        controlplus.h controlplus.cpp
    DEPENDENCIES QtQuick
)

پلاگین بالا شامل یک فایل Qml، چند تصویر و فایل ++C است. URI پلاگین مقدار plugins.clockplus است که نشان می دهد پلاگین ایجاد شده باید در پوشه plugins قرار بگیرد (اسامی پوشه ها اختیاری است).

پس از کامپایل کردن پروژه در مسیر فایل های کامپایل شده به سه فایل زیر نیاز داریم:

  1. libClockPlus.so
  2. qmldir
  3. ClockPlus.qmltypes

این سه فایل را در پوشه clockplus در مسیر plugins در پروژه اصلی قرار می دهیم. پس از این می توانیم در فایل های Qml پروژه این پلاگین را مانند ماژول ها وارد (import) کنیم.

نکته مهم که نباید فراموش کنید، قرار دادن فایل های پلاگین در مسیر مربوطه در کنار فایل اجرایی برنامه است. از آنجا که پلاگین ها، کتابخانه های اشتراکی اند باید همراه با فایل اجرایی برنامه منتشر شوند.

پلاگین های Qml و ++C
Tagged on:             

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *