It would be cool if you could do:

Python {
id: pythonOsPath
code: `import os
print (os.path)`
}
 
Text {

text: pythonOsPath.exec()
}
Note the back-ticks, which allow multiline, non-substitured strings. 



________________________________
 From: Charley Bay <charleyb...@gmail.com>
To: Jason H <scorp...@yahoo.com> 
Cc: Qt Interest <interest@qt-project.org> 
Sent: Wednesday, February 19, 2014 9:17 PM
Subject: Re: [Interest] pyotherside is Awesome
 


<keeping the thread below for others to review>

Jason H sayeth:

I think a better approach would have been to drop JS entirely (kill the JS 
Engines) and go with python. Though, I don't know how this would really be 
different from what we have today.

That's my curious wondering at present.  While I prefer C++, if I'm scripting, 
I think I'd prefer Python over JS.  However, JS is so trivial that QML 
implemented its own internal-engine (which I think was a good idea, for the 
strong typing and other internal semantic control).  I don't know if it is 
realistic to consider an internal-engine like that with Python syntax/semantics 
(probably not, but I don't know).

I argue for python a lot, but not this time. 
>
I used to code PyQt apps, and loved it. It was fantastically easy. Then I used 
Jython and that was great.  I however will not be using this. It's just 'off'. 
I could be missing the point, and if I am, please tell me!


I'll defer to the pyotherside Author (if he's monitoring the list and wants to 
comment), but IMHO "pyotherside" really is "different":  While PyQt and PySide 
wrap the Qt/QWidget APIs (that's a lot of work), "pyotherside" does NOT.  It 
merely embeds a Python engine in your QML apps.  You can't do GUI with it.  You 
don't have access to anything Qt (no widgets, no controls, etc.)  Rather, you 
can only do Python logic.

Then, the QML can "call-into" the Python engine (with all the objects you have 
in there), and can receive "events" from the engine (and those events are 
merely handled through JS callbacks within your QML).  It's a very small API, 
and it's merely a "call()" and "evaluate()" API.  The author made a good 
decision IMHO to default to "asynchronous", but you can do synchronous calls if 
you want (which you probably shouldn't).

For my use, that's *exactly* what I want.  I don't want GUI in my Python.

From my understanding, here's the *ideal* scenario for pyotherside:

(1) You have a command-line tool written in Python.  It does a lot of stuff, 
and runs for a long time.

(2) You want to slap a GUI on it, and you want that GUI to be QML.

(3) Use pyotherside.

(4) Profit!

-----------

A possible "second-scenario" would be:

(1) You have a QML application.

(2) You want to do some non-trivial logic, including some long-lived non-GUI 
stateful objects.

(3) Use pyotherside (to embed into your QML a Python engine that holds the 
long-lived non-GUI stateful objects)

(4) Profit!

-----------
I suppose a possible third-scenario might be:

(1) You have a QML application.

(2) You want to call a Python function to do something that is not natively 
available in the QML APIs, but it's "out-of-the-box-available" in Python.  
There are so many really weird Python modules and APIs that this can often be 
true.

(3) Use pyotherside.

(4) Profit!

-----------
Here's my personal most likely scenario:

(1) You need a GUI, so you write it in QML.

(2) You write your logic in C++, deployed as a QML plugin.

(3) You go make yourself a jelly sandwich, while wondering how people can live 
without compile-time syntactic code checks and strong typing.

(4) Profit!

--charley


On Wed, Feb 19, 2014 at 6:24 PM, Jason H <scorp...@yahoo.com> wrote:

I took a look at the video. As I'm a HUGE python fan. But I have no idea what 
this is about. At best, it allows you to access python libraries when 
JavaScript falls short, in effect keeping the QML for presentation and doing 
more in Python... But we already have something to use when JS falls short: C++ 
and all its libraries. When I saw the code examples, I thought "Eew, you got 
your python in my QML!" The fact that you have to enclose all the python 
strings in quotes is horrid.
>
>
>I think a better approach would have been to drop JS entirely (kill the JS 
>Engines) and go with python. Though, I don't know how this would really be 
>different from what we have today. I argue for python a lot, but not this 
>time. 
>
>
>I used to code PyQt apps, and loved it. It was fantastically easy. Then I used 
>Jython and that was great.  I however will not be using this. It's just 'off'. 
>I could be missing the point, and if I am, please tell me!
>
>
>
>
>
>________________________________
> From:Charley Bay <charleyb...@gmail.com>
>To:Qt Interest <interest@qt-project.org> 
> Sent:Wednesday, February 19, 2014 6:18 PM
>Subject:[Interest] pyotherside is Awesome
> 
>
>
>Just a "heads-up", but I spent the last couple weeks playing around with 
>"pyotherside", which binds a Python engine into QML ("pyotherside" is deployed 
>as a C++ compiled QML plugin).
>
>
>I am really impressed.  It is really awesome -- it integrates well, is easy to 
>use, and we can now put QML applications on top of our Python code bases.  (We 
>are mostly a C++ shop, and we're mostly doing C++ plugins, but Python is handy 
>for internal tools and prototyping.)
>
>
>Main web site:
>http://thp.io/2011/pyotherside/
>
>
>
>Latest docs (v1.2):
>http://pyotherside.readthedocs.org/en/latest/
>
>
>
>DevDays 2013 Berlin talk here:
>http://www.youtube.com/watch?v=2HAFOZ5_Xks&index=17&list=PLizsthdRd0YyV6zOEFYog77IAPV85f7w2
>
>
>
>I'm not affiliated with the project -- I'm just tickled at how well it 
>integrates into QML.  I didn't realize it existed until KDAB put the Berlin 
>talks online.
>
>
>As a silly thought-experiment, IMHO the QML/Javascript is a 
>"better-Javascript" because it's strongly-typed and the new QML/JS engine is 
>"more-integrated" leading to greater possible bytecode/speed/packaging 
>features in the future.  However, I'm somewhat curious what the Qt community 
>would think about making "Python" a first-class-citizen in the QML world.  If 
>we did, I'd probably vote for an API that looks like that provided through 
>"pyotherside".  I have a general "fear/trepidation" with putting 
>more-than-trivial logic into Javascript, but I'm less concerned about scaling 
>logic through Python.
>
>
>--charley
>
>
>_______________________________________________
>Interest mailing list
>Interest@qt-project.org
>http://lists.qt-project.org/mailman/listinfo/interest
>
>
>
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to