Hi @imliubo
LVGL Micropython bindings expects specific conventions from the C API.
One of the conventions is a specific prototype for a constructor, as you noticed.
Apparently the QRCode external component does not follow LVGL conventions.
I can suggest:
Openning an issue on the QRCode GitHub repo and report this problem
Creating a new version of the QRCode component with LVGL conventions
Or wrapping the exiting QRCode component with a new C API that follows LVGL conventions and use that for Micropython