Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2017, 14:49   #1
AdvaitaKrishna das
Новичок
Джуниор
 
Регистрация: 17.08.2017
Сообщений: 2
По умолчанию PyQt5 QML Dynamically Create component

Доброго времени суток!

Создавал ли кто-то кастомный QML компонент из python? Суть такова:

Есть кастомный QML компонент:
Код:
import QtQuick 2.5

Rectangle {
	width: 100
	height: 200
	color: "red"
}
И хочется создать и увидеть его в простом приложении:
Код:
import QtQuick 2.5
import QtQuick.Controls 1.4

ApplicationWindow {
    id: root
    visible: true
    width: 640
    height: 480
}
А запускаем его из pythonа так:
Код:
import sys

from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQml import QQmlApplicationEngine
from PyQt5.QtQml import QQmlComponent

app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.load("app3.qml")
engine.quit.connect(app.quit)

component = QQmlComponent(engine)
component.loadUrl(QUrl("widget.qml"))
component.create()

for error in component.errors():
	print(error.toString())

sys.exit(app.exec_())
Однако, он не отображается в окне. Что я делаю не так? (Компоненты нужно создавать динамически исходя из логики в python).

Решаемая сверх задача: python грузит плагины в которых определены контролы, которые будут расширять приложение.

p.s: Смотрел сюда: http://pyqt.sourceforge.net/Docs/PyQt5/qml.html но там нет визуальной составляющей компонента. Куда копать дальше?

Последний раз редактировалось AdvaitaKrishna das; 17.08.2017 в 15:00.
AdvaitaKrishna das вне форума Ответить с цитированием
Старый 17.08.2017, 16:54   #2
AdvaitaKrishna das
Новичок
Джуниор
 
Регистрация: 17.08.2017
Сообщений: 2
По умолчанию

Вот решение: https://gist.github.com/advaita-kris...1bd7706723ff23

Пример инициализирует новый контрол и обрабатывает события от него, показывая связку через свойства backend-класса
AdvaitaKrishna das вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с виджетом из PyQt5 для открытия и редактирования изображения kadyrkaragishiev Python 0 25.03.2017 09:15
C++, QT и QML. Динамическое формирование QML. mibin Qt и кроссплатформенное программирование С/С++ 1 27.08.2015 05:56
Python 3 + PyQt5 + PyOpenGL = blackscreen Glaciuse Python 0 10.04.2014 13:06
QT. Custom widget. ROD Qt и кроссплатформенное программирование С/С++ 3 30.01.2013 08:47
Custom scrollbar ZXZ_RUS Компоненты Delphi 1 17.08.2011 14:48