<div dir="ltr"><div dir="ltr" class="gmail_msg">Hi Scott,<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">I think I've probably committed on top of it since then, since I didn't hear back from anyone, sorry.  I wasn't aware about specifying fillWdith/fillHeight and will keep that in mind.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">I'm in the middle of a huge refactor that I think will dodge the issue.  My PyQt5 app has minimal business logic and only handles the front-end by receiving JSON models over ZMQ from a separate Python back-end.  The PyQt5 client sends action messages back over ZMQ, and the back-end pushes new model data.  This way, if the front-end closes or crashes, the back-end state persists.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">In the refactor, I'm going to make a QML object backed by a Python class called the Store that will handle receiving new JSON data over ZMQ.  Then the models will be list properties of the Store, which can be passed to all the other components in the app.  Does this seem feasible?  I think It has the benefit of letting me pass around models almost entirely in QML and keeps all my low level data model updates in one place.  It is similar to the architecture presented at <a href="https://medium.com/@benlaud/qml-application-architecture-guide-with-flux-b4e970374635#.x7mtwhjnh">https://medium.com/@benlaud/qml-application-architecture-guide-with-flux-b4e970374635#.x7mtwhjnh</a>, and is similar to some other client-side web frameworks.</div><div class="gmail_msg"><br></div><div class="gmail_msg">Thanks,<br>Louis</div></div><br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Tue, Jan 3, 2017 at 11:35 AM Cody Scott <<a href="mailto:cody@perspexis.com" class="gmail_msg" target="_blank">cody@perspexis.com</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Where is the QML code that is not working? I think you might just be having a problem with layout in QML. One thing to note is that by default components don't have a width and a height so you need to either specify them directly or with Layout.fillWidth: true </div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg"></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg">On Thu, Dec 22, 2016 at 9:58 PM, Louis Simons <span dir="ltr" class="gmail_msg"><<a href="mailto:lousimons@gmail.com" class="gmail_msg" target="_blank">lousimons@gmail.com</a>></span> wrote:<br class="gmail_msg"></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">I've been learning (mostly trial and error) PyQt5 with a project at <a href="https://github.com/superlou/snowman-qt-client" class="gmail_msg" target="_blank">https://github.com/superlou/snowman-qt-client</a>.  I've tried to do the view layer in QML, with components that need a model backend defined in Python and registered.  For example, the MainBus QML type is registered as a MainBus Python class.  The MainBus Python object then handles some business logic communication to the backend server.  The only gotcha I'm running into is that it seems like the custom QML items extending QtQuickItems don't get positioned properly using layouts or anchors.  I can set x and y positions on them, but that's about it.<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Is this expected behavior?  I'm starting to think that maybe the intent of registering types is not to directly link a QML "view" to a Python "model."  Is there a more appropriate way to create this kind of architecture?  Would it be more appropriate to create a MainBusModel class, that's used purely as a property of a QML MainBus view?  Another part of me is thinking that I missed the boat altogether, and that my registered type should really be the ManagerConnection (<a href="https://github.com/superlou/snowman-qt-client/blob/master/manager_connection.py" class="gmail_msg" target="_blank">https://github.com/superlou/snowman-qt-client/blob/master/manager_connection.py</a>), which is really what the Python object is interacting with, and almost all of my logic could be handled in QML.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">I apologize if this is a basic question.  I've been reading the C++ documentation, and while it says "how" to do things, it doesn't really recommend how you structure these kinds of apps.</div></div>
<br class="gmail_msg"></blockquote></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">_______________________________________________<br class="gmail_msg">
PyQt mailing list    <a href="mailto:PyQt@riverbankcomputing.com" class="gmail_msg" target="_blank">PyQt@riverbankcomputing.com</a><br class="gmail_msg">
<a href="https://www.riverbankcomputing.com/mailman/listinfo/pyqt" rel="noreferrer" class="gmail_msg" target="_blank">https://www.riverbankcomputing.com/mailman/listinfo/pyqt</a><br class="gmail_msg"></blockquote></div><br class="gmail_msg"></div>
</blockquote></div></div>