В процессе изучения Qt и Qt Quick столкнулся с очень интересной проблемой. Я хотел добавить в свое приложение виджет, на котором что-то будет отображаться с помощью OpenGl. Я нашел небольшой пример с использованием vispy и решил попробовать. И тут происходит что-то очень интересное. Дело в том, что один из моих виджетов написан на QML, и когда я запускаю свое приложение, виджет с OpenGL работал. Вместо QML-виджета появляется черный квадрат. Так же в логе пишется следующее:
ПРЕДУПРЕЖДЕНИЕ: QQuickWidget нельзя использовать как родной дочерний виджет. Рассмотрите возможность установки Qt::AA_DontCreateNativeWidgetSiblings
Вот мой код:
import QtQuick 2.7
import QtQuick.Controls 1.0
import QtQuick.Layouts 1.0
Rectangle {
width: 200
height: 200
color: 'white'
Rectangle {
id: lef_rec
width: parent.width / 2
height: parent.height
color: "green"
}
Rectangle {
width: parent.width / 2
height: parent.height
anchors.left: lef_rec.right
color: "blue"
}
}
В Питоне:
self.qml_wdg = QQuickWidget()
self.qml_wdg.setSource(QtCore.QUrl("main.qml"))
canvas = Canvas(keys='interactive', vsync=False).native
layout = QtWidgets.QVBoxLayout()
layout.addWidget(canvas)
layout.addWidget(self.qml_wdg)
self.centralwidget.setLayout(layout)
По отдельности все работает, вместе вот эта ошибка. Мне интересно, что это за проблема?