I already told you: when using pygobject, the Python’s normal constructor form does not take positional arguments.
Every type that derives from GObject.Object has an automatic constructor for the type, which takes named arguments; those named arguments are any writable object property.
The non-named args will be caught earlier in Box class, not until
PyGObject class. But names and values pair can be checked in PyGObject.
The function definitions from PyGObject-stubs match the API document
from https://lazka.github.io/pgi-docs. If the stubs function
definitions are wrong, what about the pgi-docs? What can I get for
reference?
If I uninstall PyGObject-stubs, I can not get function and parameter
hints and suggestions for PyGObject functions in VSCode.
There is no Box.__init__() written in PyGObject. PyGObject uses introspection data to create objects. It would be extremely tedious work to explicitly write __init__() methods for each GObject Type. Explicitly written __init__() methods would also cause a lot of problems since the underlying GObject Type is bound to change. Properties, methods, constructors, etc. could be added, deprecated, or removed and PyGObject implementation of __init__() would have to be updated manually.
Sorry, but that is, currently, how it is; No auto-completion/suggestions for GObject based libraries in Python.
At least that’s case on VS Code. I don’t know about the situation on GNOME Builder though. On it’s homepage it does say
Explore APIs used by your project with auto-completion for C/C++, Python, Rust, and Vala. For languages without native support, ctags integration is provided.