مکان فعلی شما: :», Qt, سی پلاس پلاس C++»تغییر property یک شی در QML از سمت C++

تغییر property یک شی در QML از سمت C++

دسترسی به اشیاء QML از C++

بعد از کلی سر و کله زدن با یه مشکل مسخره تونستم یه راه قشنگ پیدا کنم و حیفم اومد به اشتراک نزارم باهاتون (هرچند ممکنه باهاش به مشکل نخورید)

بنده داشتم خیلی سرو کله میزدم که یه شی که در qml ساخته میشه (داینامیک ساخته می‌شد) رو از داخل back-end که همون C++ بود بگیرم و property هاشو عوض کنم.

خب خیلی راه ها بود و توی نت هم نوشته بود ولی هیچکدوم اونی که من میخواستم نبود هرکدومم دلایل خاصی داشت ولی خب توضیحش از حوصله خارجه ، خلاصه برداشتم از این متد static خیلی خوب استفاده کردم که خیلی راحت کاری که میخواستم انجام داد برام.

نحوه استفاده از QQmlProperty::write

QQmlProperty p(object, name);
p.write(value);

توی کد بالا شما جای Object شی مورد نظرت که داخل qml ساختی رو بزار که خب خیلی روشا داره و هرکی به یه روش اینو میسازه و یه روشی میگیره.
name هم اسم پراپرتی ای هست که میخوای عوض کنی مثلا من اسمش “visible” بود و اینو گذاشتم اونجا چون QString می‌گرفت.
در خط آخر هم باید جای value مقدار اونو بدید که مثلا من بهش یک bool دادم (در مواقعی hide می‌شد false و درمواقعی که show می‌شد true می‌دادم.)

نظر یادتون نره !

خب تا انتهای این آموزش امیدوارم به خوبی هر چی رو که بوده گفته باشیم و شما به راحتی فهمیده باشید. اگر کمی گنگ بود و یا مشکلاتی داشت و هر نوع انتقاد یا پیشنهادی و سوالی داشتید می توانید در انتهای همین صفحه در قسمت نظرات بیان کنید . خیلی متشکریم بابت وقتی که گزاشتید و  اچ کدینگ رو دنبال کردید.
برای اینکه خستگی از تن ما در بره می تونید ما رو به دوستانتون معرفی کنید (با به اشتراک گذاری) تا برای ما روحیه مثبتی بشه که در آموزش های آتی بهتر عمل کنیم.

توسط | ۱۴۰۱-۱-۱ ۰۱:۰۴:۳۳ +۰۰:۰۰ ۱ام فروردین, ۱۴۰۱|QML, Qt, سی پلاس پلاس C++|

درباره نویسنده:

به امید تحول!

یک نظر بنویسید