What is the diffrerence between binding in nimqml and nimqt?

So far I have found in the docs.

nimqml uses <https://github.com/filcuc/DOtherSide> for the binding and creation 
of QObjects and compiles to c. Developer need to compile DOtherSide to a dynLib 
before you can use the fw.

nimqt uses <https://github.com/woboq/verdigris> for the binding and creation of 
QObjects at runtime and compiles to cpp. All is compiled statically.

Verdigris seems to be more lightweight for binding to Nim.

I think a separate project (for only Qml/QtQuick) with a bare minimum wrapper 
for communication between Nim and Qml based on Verdigris would offer a 
declarative way of Qml to design the ui and nim for the complete logic. No 
Qml-Js-runtime only the Qt application container to start and end the Qml app.
    
    
    import NimQml
    
    QtObject:
      type Contact* = ref object of QObject
        name: string
        surname: string
      
      proc delete*(self: Contact)
      proc setup(self: Contact)
      
      proc newContact*(): Contact =
        new(result, delete)
        result.name = ""
        result.setup
      
      proc delete*(self: Contact) =
        self.QObject.delete
      
      proc setup(self: Contact) =
        self.QObject.setup
      
      proc firstName*(self: Contact): string {.slot.} =
        result = self.name
      
      proc firstNameChanged*(self: Contact, firstName: string) {.signal.}
      
      proc setFirstName(self: Contact, name: string) {.slot.} =
        if self.name == name: return
        self.name = name
        self.firstNameChanged(name)
      
      proc `firstName=`*(self: Contact, name: string) = self.setFirstName(name)
      
      QtProperty[string] firstName:
        read = firstName
        write = setFirstName
        notify = firstNameChanged
    
    
    
    Run

I like the Qml-Bindings syntax in nimqlm. So the question is, would nimqml 
based on Verdigris bring some advantages?

Reply via email to