Size: a a a

2020 January 21

AE

Alexey Edelev in Qt
Я сильно упрощаю, если что
источник

AE

Alexey Edelev in Qt
понятное дело на этом примере все будет ок
источник

AE

Alexey Edelev in Qt
там скорость создания объектов слишком "велика"
источник

RG

Renat Garaev in Qt
Alexey Edelev
там скорость создания объектов слишком "велика"
@programmist_me Ну например три файла, и создаются одновременно и одинаковые компоненты. Не известно же какой файл первый будет, какой второй, какой третий?
источник

МС

Михаил Серебренников in Qt
Renat Garaev
А если идут связывания из разных qml файлов?
Это не имеет значения.
источник

МС

Михаил Серебренников in Qt
Определённого сорта проблемы могут быть лишь в обработке Component.onCompleted. На этой фазе всё равно существуют все элементы, но могут быть не проинициализированы значения параметров y соседних элементов.
источник

RG

Renat Garaev in Qt
Михаил Серебренников
Это не имеет значения.
Например в каждый файл включить worker, который изменит текст в другом файле. Все ли три файла смогут изменить тестовое тестовое поле в других файлах?
источник

AE

Alexey Edelev in Qt
Михаил Серебренников
Определённого сорта проблемы могут быть лишь в обработке Component.onCompleted. На этой фазе всё равно существуют все элементы, но могут быть не проинициализированы значения параметров y соседних элементов.
И это тоже
источник

RG

Renat Garaev in Qt
Alexey Edelev
Item {
   SomeNonTrivialItem1 {
      id: item1
   }
   SomeNonTrivialItem2 {
      id: item2
   }
}
SomeNonTrivialItem2.qml
Item {
   Text {
      text: item1.someText; //Потенциальное обращение к несозданному объекту
   }
}
В трёх отдельных файлах. И в каждом из них worker {  }
Который пытается получить текст из другого файла, либо что есть уже параметр по умолчанию или его нет
источник

МС

Михаил Серебренников in Qt
Renat Garaev
Например в каждый файл включить worker, который изменит текст в другом файле. Все ли три файла смогут изменить тестовое тестовое поле в других файлах?
Worker начнёт работать только после того, как всё проинициализируется и заработает система привязок.
источник

RG

Renat Garaev in Qt
Михаил Серебренников
Worker начнёт работать только после того, как всё проинициализируется и заработает система привязок.
значит в qt всё продумано за нас, чтобы все было проинициализировано, даже при параллельной загрузке.
источник

МС

Михаил Серебренников in Qt
Дэ, разумеется. Я в своё время наелся по самое не могу особенностями загрузки QML. К примеру, вы знали, что следующий год БОЛЕЕ отзывчивый

Loader {
 source: "CustomItem.qml"
 asynchronous: true
}


, чем

Loader {
 source: CustomItem { }
 asynchronous: true
}


?
источник

AE

Alexey Edelev in Qt
Михаил Серебренников
Дэ, разумеется. Я в своё время наелся по самое не могу особенностями загрузки QML. К примеру, вы знали, что следующий год БОЛЕЕ отзывчивый

Loader {
 source: "CustomItem.qml"
 asynchronous: true
}


, чем

Loader {
 source: CustomItem { }
 asynchronous: true
}


?
угумс
источник

AE

Alexey Edelev in Qt
CustomItem { } парсится в момент создания лоадера
источник

AE

Alexey Edelev in Qt
source: "CustomItem.qml" а это когда уже идет непосредственно загрузка
источник

AE

Alexey Edelev in Qt
По аналогии

Loader {
 source:comp
 asynchronous: true
}


Component {
  id: comp
  CustomItem { }
}
источник

МС

Михаил Серебренников in Qt
А что, если один асинхронный Loader грузится внутри другого, то время загрузки увеличивается? Поэтому везде нельзя ставить этот флаг.
источник

AE

Alexey Edelev in Qt
Михаил Серебренников
А что, если один асинхронный Loader грузится внутри другого, то время загрузки увеличивается? Поэтому везде нельзя ставить этот флаг.
Это не знал, но мне кажется что там какое-то не критичное время наверное, аля ожидание на мьютексе
источник

AE

Alexey Edelev in Qt
не?
источник

МС

Михаил Серебренников in Qt
Это не из-за многопоточности, а из-за того, что в разные циклы загрузки компоненты попадают.
источник