[PyQt] Qt Contributors Summit

Phil Thompson phil at riverbankcomputing.com
Wed Jun 8 22:37:38 BST 2011

On Thu, 9 Jun 2011 00:18:09 +0300, Attila Csipa <pyqt at csipa.in.rs> wrote:
> On Wednesday 08 June 2011 23:08:36 you wrote:
>>   form_display = ['first_name', 'last_name', 'birthdate']
>>   this single line will generate me a form with all the fields
>>   bound to the underlying data model.
>>   will I be able to do the same with QDeclarativeComponents without
>>   going through javascript translations and QML files.
>>   maybe my understanding of Qt Quick is still lagging, all
>>   clarifications are more then welcome ?
> Yes, but then you'd be doing it wrong (in fact, if you have a beef with
> QML, 
> personally I'd rather suggest you stick with QWidgets, that's less
> backwards 
> than using QDeclarativeComponents in an imperative manner). I encourage 
> everyone to put prejudice and the natural aversion of Python folks to JS
> aside 
> :), and try out QML for a bit. Is it really worth doing complex dynamic
> widget 
> and layout generators in python when you can have the same thing done 
> literally in minutes and just a few lines of QML (is QML syntax *that*
> scary) 
> ? Of course people want to stick to tools and paradigms they are
> with 
> (what does it matter if you have that line in a .py file or a Form {
> fields: 
> ['first_name', 'last_name', 'birthdate'] } in a QML file ?). The bottom
> line is 
> QDeclarativeComponents are NOT QWidgets, and QML files are NOT
> of 
> .UI files. And no, you don't have to touch the QML designer ever.

I think you are missing the point.

I don't think there is much argument about the benefits of a declarative
approach over traditional widgets. Erik's framework uses a declarative
approach. dip uses a declarative approach. ETS uses a declarative approach.
While it may seem a novelty in the C++ world its been around Python for
years. The problem is whether or not people are forced to use a particular
implementation, ie. QML. What I certainly want is a public C++ API to the
underlying code that QML sits on top of so that alternative declarative
solutions can be implemented.


More information about the PyQt mailing list