FPC doesn't support directly calling C++ classes. You need to create instance of C++ class from the other side (separate library).
Sure.
QDialog.width proxy class member will call flat QDialog_width procedure that will call flat C QDialog_width wrapper procedure from shared library that will call C++ QDialog.width class member.
pointer to instance of C++ QDialog will be stored in Pascal QDialog instance.
Callbacks, (pascal procs called by C++ class from the other side) are more complex. But it is also possible. In SWIG there is concept of "director" class for this.
SWIG generates flat C wrappers, flat Pascal procedures, proxy Pascal classes and directors. It should. Currently Modula3, Delphi and Free Pascal (that I am working on) modules are quite rough at this moment.