Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 17.08.2017, 15:49   #1
AdvaitaKrishna das
Новичок
 
Регистрация: 17.08.2017
Сообщений: 2
Репутация: 10
По умолчанию 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 в 16:00.
AdvaitaKrishna das вне форума   Ответить с цитированием
Старый 17.08.2017, 17:54   #2
AdvaitaKrishna das
Новичок
 
Регистрация: 17.08.2017
Сообщений: 2
Репутация: 10
По умолчанию

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с виджетом из PyQt5 для открытия и редактирования изображения kadyrkaragishiev Python 0 25.03.2017 10:15
C++, QT и QML. Динамическое формирование QML. mibin Qt и кроссплатформенное программирование С/С++ 1 27.08.2015 06: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


12:26.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru