Тип Повторитель3D используется для создания большого количества похожих элементов. Но если я попытаюсь заполнить модель большим объемом данных, она будет работать медленно. Например, у меня есть список из 500 элементов:
QQmlApplicationEngine engine;
QList dataList;
for (int i = 0; i < 500; i++) {
for (int j = 0; j < 500; j++) {
dataList.append(new DataObject("Item 1:", 1, j * 8, i * 8, 1));
}
}
engine.rootContext()->setContextProperty("myModel", QVariant::fromValue(dataList));
Я установил этот список в качестве модели в Repeater3d:
Repeater3D {
id: _3DRepeater
model: myModel
Model {
id: sphere
x: model.modelData.x
y: model.modelData.y
z: model.modelData.z
source: "#Sphere"
scale.z: model.modelData.radius * 0.05
scale.y: model.modelData.radius * 0.05
scale.x: model.modelData.radius * 0.05
materials: principledMaterial
}
}
Это класс DataObject:
class DataObject : public QObject
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
Q_PROPERTY(int radius READ radius WRITE setRadius NOTIFY radiusChanged)
Q_PROPERTY(int x READ x WRITE setX NOTIFY xChanged)
Q_PROPERTY(int y READ y WRITE setY NOTIFY yChanged)
Q_PROPERTY(int z READ z WRITE setZ NOTIFY zChanged)
public:
DataObject (const QString& name, int radius, int x, int y, int z) : m_name(name), m_radius(radius), m_x(x), m_y(y), m_z(z) {};
...
private:
QString m_name;
int m_radius;
int m_x;
int m_y;
int m_z;
};
Подробнее здесь: https://stackoverflow.com/questions/782 ... -very-slow
QML Repeater3D рендеринг очень медленный ⇐ C++
Программы на C++. Форум разработчиков
1711982929
Anonymous
Тип Повторитель3D используется для создания большого количества похожих элементов. Но если я попытаюсь заполнить модель большим объемом данных, она будет работать медленно. Например, у меня есть список из 500 элементов:
QQmlApplicationEngine engine;
QList dataList;
for (int i = 0; i < 500; i++) {
for (int j = 0; j < 500; j++) {
dataList.append(new DataObject("Item 1:", 1, j * 8, i * 8, 1));
}
}
engine.rootContext()->setContextProperty("myModel", QVariant::fromValue(dataList));
Я установил этот список в качестве модели в Repeater3d:
Repeater3D {
id: _3DRepeater
model: myModel
Model {
id: sphere
x: model.modelData.x
y: model.modelData.y
z: model.modelData.z
source: "#Sphere"
scale.z: model.modelData.radius * 0.05
scale.y: model.modelData.radius * 0.05
scale.x: model.modelData.radius * 0.05
materials: principledMaterial
}
}
Это класс DataObject:
class DataObject : public QObject
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
Q_PROPERTY(int radius READ radius WRITE setRadius NOTIFY radiusChanged)
Q_PROPERTY(int x READ x WRITE setX NOTIFY xChanged)
Q_PROPERTY(int y READ y WRITE setY NOTIFY yChanged)
Q_PROPERTY(int z READ z WRITE setZ NOTIFY zChanged)
public:
DataObject (const QString& name, int radius, int x, int y, int z) : m_name(name), m_radius(radius), m_x(x), m_y(y), m_z(z) {};
...
private:
QString m_name;
int m_radius;
int m_x;
int m_y;
int m_z;
};
Подробнее здесь: [url]https://stackoverflow.com/questions/78256135/qml-repeater3d-rendering-very-slow[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия