[Interest] QML MenuBar : works with PySide2 but not c++ ?
Frank Mertens
frank at cyblogic.de
Thu Jun 3 10:10:57 CEST 2021
Try a lowercase file name, e.g.: "qrc:/menuBar.qml".
;)
On 03.06.21 06:08, Nicholas Yue wrote:
> I copied the qml loading code from another working example, I was just testing a change in the QML content.
>
> I'd have to dig further about the lambda
>
> MenuBar.pro
> ===========
> QT += quick
>
> CONFIG += c++11
>
> # The following define makes your compiler emit warnings if you use
> # any Qt feature that has been marked deprecated (the exact warnings
> # depend on your compiler). Refer to the documentation for the
> # deprecated API to know how to port your code away from it.
> DEFINES += QT_DEPRECATED_WARNINGS
>
> # You can also make your code fail to compile if it uses deprecated APIs.
> # In order to do so, uncomment the following line.
> # You can also select to disable deprecated APIs only up to a certain version of Qt.
> #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
>
> SOURCES += \
> main.cpp
>
> RESOURCES += main.qrc
>
> # Additional import path used to resolve QML modules in Qt Creator's code model
> QML_IMPORT_PATH =
>
> # Additional import path used to resolve QML modules just for Qt Quick Designer
> QML_DESIGNER_IMPORT_PATH =
>
> # Default rules for deployment.
> qnx: target.path = /tmp/$${TARGET}/bin
> else: unix:!android: target.path = /opt/$${TARGET}/bin
> !isEmpty(target.path): INSTALLS += target
>
> main.qrc
> =======
> <RCC>
> <qresource prefix="/">
> <file>MenuBar.qml</file>
> </qresource>
> </RCC>
>
>
> On Wed, 2 Jun 2021 at 20:36, Tony Rietwyk <tony at rightsoft.com.au <mailto:tony at rightsoft.com.au>> wrote:
>
> Hi Nicholas,
>
> The short answer is because your C++ is doing completely different things to the python code. :O)
>
> I'm not sure about using QML. Have you included the qml file as a resource correctly to access via qrc:? You aren't checking the result of the engine.load. Also, why is the lambda exiting the application when the objectCreated matches the url?
>
> Have run the Qt QML examples? How is your C++ code different to those?
>
> Hope that helps, Tony
>
>
> On 3/06/2021 11:33 am, Nicholas Yue wrote:
>> Hi,
>>
>> I am learning about QML.
>>
>> I would like to find out why the PySide2 loading of the QML file results in a visible window but the C++ one does not. The compiled application runs but no window is displayed.
>>
>> MenuBar.qml
>> ===========
>> import QtQuick 2.4
>> import QtQuick.Controls 2.13
>>
>> ApplicationWindow {
>> visible: true
>> width: 720
>> height: 480
>> title: "simple window"
>>
>> menuBar: MenuBar{
>> Menu{
>> title: "Menu1"
>> }
>>
>> Menu{
>> title: "Menu2"
>> }
>>
>> Menu{
>> title: "&Menu3"
>> }
>> }
>> }
>>
>> main.cpp
>> ========
>> #include <QGuiApplication>
>> #include <QQmlApplicationEngine>
>>
>> int main(int argc, char *argv[])
>> {
>> QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
>>
>> QGuiApplication app(argc, argv);
>>
>> QQmlApplicationEngine engine;
>> const QUrl url(QStringLiteral("qrc:/MenuBar.qml"));
>> QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
>> &app, [url](QObject *obj, const QUrl &objUrl) {
>> if (!obj && url == objUrl)
>> QCoreApplication::exit(-1);
>> }, Qt::QueuedConnection);
>> engine.load(url);
>>
>> return app.exec();
>> }
>>
>> main.py
>> =======
>> import sys
>> from PySide2 import QtCore, QtGui, QtQml
>>
>> if __name__ == '__main__':
>>
>> QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
>> app = QtGui.QGuiApplication(sys.argv)
>>
>> engine = QtQml.QQmlApplicationEngine()
>>
>> url = QtCore.QUrl.fromLocalFile('MenuBar.qml')
>> engine.load(url)
>> if not engine.rootObjects():
>> sys.exit(-1)
>>
>> sys.exit(app.exec_())
>>
>> --
>> Nicholas Yue
>> Graphics - Arnold, Alembic, RenderMan, OpenGL, HDF5
>> Custom Dev - C++ porting, OSX, Linux, Windows
>> http://au.linkedin.com/in/nicholasyue <http://au.linkedin.com/in/nicholasyue>
>> https://vimeo.com/channels/naiadtools <https://vimeo.com/channels/naiadtools>
>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org <mailto:Interest at qt-project.org>
>> https://lists.qt-project.org/listinfo/interest <https://lists.qt-project.org/listinfo/interest>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org <mailto:Interest at qt-project.org>
> https://lists.qt-project.org/listinfo/interest <https://lists.qt-project.org/listinfo/interest>
>
>
>
> --
> Nicholas Yue
> Graphics - Arnold, Alembic, RenderMan, OpenGL, HDF5
> Custom Dev - C++ porting, OSX, Linux, Windows
> http://au.linkedin.com/in/nicholasyue <http://au.linkedin.com/in/nicholasyue>
> https://vimeo.com/channels/naiadtools <https://vimeo.com/channels/naiadtools>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20210603/d195b7c0/attachment.html>
More information about the Interest
mailing list