Название: Доступ до дочерних элементов Отправлено: juvf от Январь 16, 2023, 10:02 Как поменять свойства дочерних элементов?
есть свой элемент MyButton.qml Код: Rectangle{ допустим я добавляю куда-нибудь эту свою кнопку и хочу поменять текст и/или колбэк по нажатию. как это сделать? Попробовал так Цитировать Item:{ ошибка компиляции. butPage и temeratureText - invalid property name. как это правильно сделать?id: mainForm MyButton{ butPage.onClicked: updateFocusAudio(myButton) temeratureText.text: "13" } } Название: Re: Доступ до дочерних элементов Отправлено: kambala от Январь 16, 2023, 10:17 надо добавить нужные property [alias] в свой элемент, это подробно описано в документации
Название: Re: Доступ до дочерних элементов Отправлено: juvf от Январь 16, 2023, 11:20 1) текст можно через property поменять. А как поменять вызываемую функцию через property? Какой должен быть тип?
2) я для упрощения сделал маленький myButton. На самом деле в нем много всяких вложенных объектов, в которые вложены другие... мне не очень нравиться выносить всё, что требуется менять, выносить 100500 property. Есть способ добраться до дочерних элементов без property ? Название: Re: Доступ до дочерних элементов Отправлено: kambala от Январь 17, 2023, 12:55 1) тип var наверное
2) добраться напрямую нельзя — только через новые свойства (обычные или алиас) или функции Название: Re: Доступ до дочерних элементов Отправлено: juvf от Январь 18, 2023, 07:14 Хорошо..... вот сделал свою кнопку. Со свистелками... рюшечки обои... тени/подсветка/эффекты.... обрамил её ректом
Код: Rectangle{ получился довольно тяжелый корневой Rectangle, поэтому вынес его в отдельный *.qml фаил. Там, где надо использовать - объявляю экземпляр кнопки и задаю ей через свойства картинку, текст, цвет.... но в разных местах в разных экземплярах этой кнопки мне нужно при нажатии разные действия на нажатие. Как теперь экземплярам этой кнопки указывать разные callback-и? Название: Re: Доступ до дочерних элементов Отправлено: juvf от Январь 18, 2023, 07:16 надо добавить нужные property [alias] в свой элемент, это подробно описано в документации где подробно описано в документации как вынести callback в property? Можете в моем коде добавить этот проперти? какой синтаксис?Название: Re: Доступ до дочерних элементов Отправлено: kambala от Январь 18, 2023, 12:43 вот простейший пример:
Код: Window { кстати activePage у тебя можно сделать просто как алиас на but.highlighted Название: Re: Доступ до дочерних элементов Отправлено: juvf от Январь 18, 2023, 13:01 вот простейший пример: Да, с холовордом заработало. спасибо. Я же говорю, с синтаксисом не понятно. А как это сделать с функцией, в которую передаются аргументы? кстати activePage у тебя можно сделать просто как алиас на but.highlighted так я его вынес в проперти, т.к. нужно его менять but.highlighted снаружи, т.е. снаружи нужно получить доступ до дочерних эл-ов. Название: Re: Доступ до дочерних элементов Отправлено: kambala от Январь 18, 2023, 13:48 не знаю что там непонятно. переменная типа var (любой жс объект), присваиваем ей жс функцию. почитай как в жс пишутся функции. в кумл с жс придется сталкиваться нередко, поэтому желательно основы языка все-таки изучить.
так я и говорю, что можно сделать property alias, чтоб устранить ненужное отдельное свойство, чья задача лишь передать значение дочернему элементу. https://doc.qt.io/qt-6/qtqml-syntax-objectattributes.html#property-aliases Название: Re: Доступ до дочерних элементов Отправлено: juvf от Январь 18, 2023, 14:10 не знаю что там непонятно. не понятно вот это - вот функция js в qml function updateFocus(obj) { butPage1.activePage = false; switch(obj) { ... } } теперь я её вызываю по нажатию кнопки Button { id: asd onClicked: updateFocus(asd) text: "test" } Тут всё понятно. Теперь я захотел по onClicked вызвать функцию через проперти. я сделал так Item { property var nameMacros: updateFocus Button { id: asd onClicked: nameMacros(asd) text: "test" } } - не заработало. Я делал так Item { property var nameMacros: updateFocus(obj) Button { id: asd onClicked: nameMacros(asd) text: "test" } } - не заработало вот так делаются проперти в qml: property int name: 123 акказываицо с функциями другой синтаксис property var name - т.е. ключевое слово property, затем тип var, затем имя свойства. двоеточия не нужно. Где-то есть в мануалах/примерах как в качестве проперти делать функцию? Далее.... смотрю Ваш пример callback: () => console.log("hello") - НИФИГАСЕБЕ как надо было!!! Т.е. имя проперти, двоеточие, скобочки, симовл => и затем команду!!! И в теле кнопки вызывать не "callback", а "callback()". Вообще всё не понятно. Как в js или/и в qml сделать указатель на функцию без аргументов? Как сделать указатель на функцию с аргументами? как вызывать функцию через указатель? Как сделать указатель на функцию с аргументами, которая возвращает значение? Название: Re: Доступ до дочерних элементов Отправлено: kambala от Январь 18, 2023, 15:31 > двоеточия не нужно
оно опционально, как и в случае с другими свойствами. можно, например, задать начальное значение null. > Где-то есть в мануалах/примерах как в качестве проперти делать функцию? в документации вроде не попадалось, я пользовался здравым смыслом при написании примера > НИФИГАСЕБЕ как надо было!!! ну, понятно, что если ты никогда не видел как пишутся жс функции, ты б не догадался :) есть и другая форма записи — через ключевое слово function. > И в теле кнопки вызывать не "callback", а "callback()" а вызов функции как-то по-другому делается в С-подобных языках? :) посмотри, например, на лямбды в С++. > Как в js или/и в qml сделать указатель на функцию... как без аргументов и как вызывать я уже показал. аргументы пишутся внутри () просто именами, типы необязательно указывать (не помню в какой версии Qt ввели возможность писать типы). тип возвращаемого значения можно не указывать, просто пишешь return ... в нужных местах. если функция состоит из более, чем одного выражения, надо использовать фигурные скобки: => { ... } в общем, плотненько почитай QML документацию, особенно по части взаимодействия с жс, а также ознакомься с основами жс. Название: Re: Доступ до дочерних элементов Отправлено: juvf от Январь 19, 2023, 07:07 в общем, плотненько почитай QML документацию, особенно по части взаимодействия с жс, а также ознакомься с основами жс. Да вы что!? Реально, если почитать документацию - то вопросов не будет? Ooooo .... оказывается есть документация по QML! СПАСИБО ЗА ПОДСКАЗКУ. это совет из серии - "сам разбирайся, я тебе не буду помогать". меня умиляют такие советы. зачем их дают? Вы думаете я не читал документацию по QML и по js? Если бы после прочтения документации ни у кого ни когда не возникало вопросов, то тогда и этот форум не нужен. На любой вопрос по любому языку можно ответить "почитай C++/C/QML/QtC/.... документацию". если кто-то напишит код на СИ с обращением к функции через указатель, ошибется, выложит этот кусок и спросит - "сделал так, не работает. как нужно?", то я поправлю его код без отсылки к RM. Вы знаете что я делаю не так? Вам поправить мой код - это 1-2 сточки. ВСЁ!!! Зачем столько много слов/постов писать и отсылать к документации? Цитировать > Как в js или/и в qml сделать указатель на функцию... Я не увидел. как без аргументов и как вызывать я уже показал. может вот это? callback: () => console.log("hello"), но я не увидел, что вы здесь объявили указатель на функцию. потому-что нет ни каких комментариев и пояснений. У меня функция - несколько комнад. Тут за callback одна команда, нет тела функции. Что это? может что-то типа аля макрос в си? Цитировать есть и другая форма записи — через ключевое слово function я через function определяю все функции в qml. ничего общего с вашим "callback: ()" я не увидел.ps... по поводу "я уже показал"... что вы показали? вот это Код: Window { Цитировать B { что такое B? (вопрос риторический) объявление нового компонента? Я не гуру в qml, часто обращаюсь к мануалам, часто изучаю чужой код, чужие примеры, смотрю/читаю уроки... я не разу не видел такой записи. callback: () => console.log("hello") } Далее... вот эта сточка Код: component B: Item { Я это всё к тому, что я qml и js изучаю в бою. по большому мне они не нужны, т.е. я не собираюсь быть профессиональным программистом в qml или js. Мне они нужны по стольку по скольку. мне бы через указатель вызвать функцию по нажатию кнопки и все, и поехал дальше... задач основных - завал. Да... со временем, если буду часто в qml конечно руку набью... но сейчас разбираться что такое "component B"??? pps за алиасы ещё раз спасибо. рука набивается. Название: Re: Доступ до дочерних элементов Отправлено: kambala от Январь 19, 2023, 12:32 > СПАСИБО ЗА ПОДСКАЗКУ.
ну вот алиасы в документации вполне описаны, как и то, что начальное значение для свойства необязательно, а ты о них не знал, что как бы намекает :) > Вы знаете что я делаю не так? Вам поправить мой код - это 1-2 сточки. ВСЁ!!! Зачем столько много слов/постов писать и отсылать к документации? подход «сделайте за меня» еще никого ничему толком не научил > Я не увидел. я уже несколько раз написал: изучай жс, почитай как там определять анонимные функции (кажется я слово «анонимные» забыл до этого сказать) / замыкания / лямбды. в моем примере как раз используется анонимная функция без аргументов. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions почему ты сразу не сказал, что половина моего примера непонятна, а о жс ты не знаешь примерно ничего? вместо этого начинаешь брызгать слюной, ай-яй-яй, заставляют читать документацию. ключевое слово component было добавлено в 5.15 кажется, позволяет описывать новые компоненты в текущем файле, без необходимости выносить их в отдельный. Код: component B: Item { ... } Код: // B.qml > Я это всё к тому, что я qml и js изучаю в бою. по большому мне они не нужны, т.е. я не собираюсь быть профессиональным программистом в qml или js так я тоже, вот только документацию QML очень плотно читал, чтобы понять что там вообще есть, какие подходы можно использовать и т.д. чтоб делать по-человечески. для хеллоуворлд всю читать, конечно, не надо :) Название: Re: Доступ до дочерних элементов Отправлено: juvf от Январь 19, 2023, 13:45 что как бы намекает :) немекает на что? что я плохо знаю qml? Я прямо говорю - я плохо знаю qml, и что? Я не могу обратиться сюда за помощью? Цитировать подход «сделайте за меня» еще никого ничему толком не научил не путайте подход «сделайте за меня» с подходом «покажите как правильно». Я вам не ставил задачу и чтоб вы за меня её сделали. я показал как я попытался решить эту задачу и спросил - что я сделал не так? Поправьте, покажите как нужно? Показать на примере как нужно сделать - это практической обучение, которое обучает не хуже теории. вместо того, чтобы в моём коде исправить 1-2 строчки - вы написали свой код, в 16 строк (не лень же было). т.е. один раз ударить топором по моему Цитировать начальное значение для свойства необязательно, а ты о них не знал, да.... не знал... повешаться теперь?.... рассказать вам как проходит самообучение языку программирования? Правильно, по самоучителю. А если его нет, то по урокам, примерам.... Нужно было отрисовать в qml - открыл уроки... ага - есть Item, есть Text, есть синтаксис... всё понятно. В уроке показали как задавать пропертиproperty int name: 123 - выучил. Открываю асистент - вбиваю туда "property" - Цитировать почему ты сразу не сказал, что половина моего примера непонятна, а о жс ты не знаешь примерно ничего? вместо этого не знаю. а что бы поменялось? вы бы не стали меня заставлять читать доки и без комментариев поправили бы мой код?Цитировать ключевое слово component было добавлено в 5.15 у меня 5.12.Цитировать так я тоже, вот только документацию QML очень плотно читал, чтобы понять что там вообще есть, какие подходы можно использовать и т.д. чтоб делать по-человечески. для хеллоуворлд всю читать, конечно, не надо я не хочу быть проф. прогарммистом qml и божеупаси js. жысть заставила заглянуть в qml... будьте толлерантны к тем, кто обращается за помощью. ps Цитировать в моем примере как раз используется анонимная функция без аргументов. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions oooooo.... вот скажите... вот человек, идет мимо js. Ему это js - как 5-ая нога собаке. Выучил ключевое слово function - это необходимо и достаточно для решения текущей задачи. Больше от js мне ни чего не нужно. открываю вашу ссылку и там Название: Re: Доступ до дочерних элементов Отправлено: juvf от Январь 19, 2023, 13:59 Цитировать плотненько почитай QML документацию, особенно по части взаимодействия с жс vsЦитировать в документации вроде не попадалось Название: Re: Доступ до дочерних элементов Отправлено: kambala от Январь 19, 2023, 16:36 > немекает на что? что я плохо знаю qml?
на то, что ты ленишься читать документацию и/или искать ответы самостоятельно, а вместо этого первым делом бежишь на форум. ты не новичок в программировании, поэтому-то и странно видеть такой подход. > что я сделал не так? Поправьте, покажите как нужно? так я тебе сразу и задал нужное направление на property [alias], вот только эффекта оно не сильно-то и возымело... задача помочь необязательно заключается в написании нужного кода в точности — куда важнее направить в верное русло, чтобы человек сам додумался до решения (тут же и практическая часть), вот от этого куда больше пользы будет. может, если б ты сразу сказал, что мне надо «хуяк-хуяк и в продакшн», то обошлись бы готовым кодом. > вместо того, чтобы в моём коде исправить 1-2 строчки - вы написали свой код, в 16 строк твой код не является законченным приложением, которое можно сразу собрать. почему я должен тратить на это время? у меня под рукой есть хеллоуворлд проект, вот я на нем и добавил пару строк в существующий файл. ты ж не новичок, сможешь адаптировать его под свой :) > qt5.12 и как я должен об этом узнать? вообще, не вижу смысла использовать версии ниже 15 из 5-й линейки, но может у тебя там что-то экзотическое, конечно. это еще хорошо, что я не использовал какую-нить фичу из 6-й версии :) > рассказать вам как проходит самообучение языку программирования? Правильно, по самоучителю я не пользуюсь самоучителями и все получается, ЧЯДНТ? если говорить про QML, я читал лишь официальную документацию и официальную книжку от Qt (https://www.qt.io/product/qt6/qml-book) (и то, книжку можно кусками читать, т.к. там еще разные модули рассматриваются), и несколько раз приходилось гуглить неочевидные вещи. > Открываю асистент - вбиваю туда "property" - нет там этих property я не знаю насколько полон ассистент по сравнению с сайтом, чаще всего использую его именно как контекстную подсказку по ф1. можно же и на сайте с документацией искать, не так ли? или вот так через обычный веб поисковик: <ключевые слова> site:doc.qt.io > не знаю. а что бы поменялось? вы бы не стали меня заставлять читать доки и без комментариев поправили бы мой код? я бы относился к тебе как к новичку, а не как к программисту со стажем с соответствующими навыками > я не хочу быть проф. прогарммистом qml и божеупаси js. жысть заставила заглянуть в qml... у меня тоже таких планов нет, но был очень сильный интерес к QML. жс в контексте QML — это просто С-подобный язык, это в вебе и электроне там всякие ужасы :) > открываю вашу ссылку и там если все-таки уделить несколько минут чтению или хотя бы просто сделать Ctrl+F по слову function, а если еще и вспомнить, что я говорил об альтернативной форме записи... можно такое обнаружить! > vs открою секрет: я тоже не знал как сделать свойство коллбэка, но я воспользоваться здравым смыслом и у меня все получилось. могу рассказать как можно до этого дойти самостоятельно из твоего положения за минуты, не тратя 3 дня на форум: - пишем в гугл js callback (ну или то же самое на русском) - или вот ты новичок в QML. все, что ты знаешь — что там можно писать жс код, даже если толком в жс не умеешь. тебе хочется понять какой же тип задать свойству коллбэка. для начала надо понять какие существуют типы в QML, для этого придется открыть документацию (https://doc.qt.io/qt-5/qtqml-typesystem-basictypes.html) (наверняка эта страница и в ассистенте есть). читаем какие есть типы: ага, кроме var ничего не подходит, переходим по его ссылке, и... о боги! там даже есть пример как функцию в свойство засунуть! но, очевидно, намного лучше, чтоб все сделали за тебя :) Название: Re: Доступ до дочерних элементов Отправлено: juvf от Январь 20, 2023, 08:13 > немекает на что? что я плохо знаю qml? ну еще один экстрасенс. от куда ты знаешь что я сделал первым делом? свечку держал? да обращаться на форум - это вообще самое последнее дело, тем более где такое хамло как ты.ты ленишься читать документацию и/или искать ответы самостоятельно, а вместо этого первым делом бежишь на форум. Цитировать > что я сделал не так? Поправьте, покажите как нужно? во первых про алиас я поблагодарил. во вторых "покажите как нужно?" - это было про функции. см мой первый пост - "как это правильно сделать?". Как правильно сделать пропертями функцию? Где ты мне дал направление? Отправил читать документацию и следующим постом написал - "этого в документации нет". Это твоё направление? или написал свой непонятный код и заставил учить js? так я тебе сразу и задал нужное направление на property [alias], вот только эффекта оно не сильно-то и возымело... Цитировать может, если б ты сразу сказал, что мне надо «хуяк-хуяк и в продакшн», то обошлись бы готовым кодом. я сразу сказал - "Как это правильно сделать?". был бы готовый код - я бы сам решил - если мне в дальнейшем это надо, я бы поискал доки на этот код Цитировать ты ж не новичок, сможешь адаптировать его под свой ты представляешь, не смог. вот так смогКод: Rectangle{ Цитировать Item:{ но мне нужно не одну строчку console.log("hello"), а отдельную функцию и множества строк.id: mainForm MyButton{ callback: () => console.log("hello") } } и согласись, идти на курсы js ради одной строчки кода.... Цитировать и как я должен об этом узнать? ни как. есть исходый код. он в 12. его поправить и всё. ps постаивл 5.15 открываю ассистент, вбиваю в поиск "component" - нет в справки этого ключевого слова. Цитировать не вижу смысла использовать версии ниже 15 из 5-й линейки Да, но только мир многогранный, и не ограничевается твоим настольным ПК. Пишу приложение для linux embeded, из коробки был Qt5.6 по мойму, но там нехватало каких-то библиотек от Qt. Пришлось кросскомпилировать новый linux , новый тулчейн, новый Qt. На тот момент последний был Qt5.12. Более того, собираю линукс билрутом. есть на авроре для моей платформы патченые исходники под мою платформу. Там ядро лиукса 5.10.9. В нем Qt5 не самый свежий. Если брать 5.15 или 6-ку, то это надо своё все собирать. а 6-ка может потащить более свежий glibc, libtext... и пошло поехало. Нужно будет и линукс собирать более свежий. Качать с kernel.org и делать адаптировать его под мою платформу. Не вижу в этом смысла. 5.12 меня удевлетворяет более чем, и так же linux5.10. Сросишь - "как я должен об этом узнать?", отвечу - никак. Зачем тебе это знать? мне нужно было это всё в первом посте написать, начав с того как я закончил школу и дожил до программирования в Qt?ps а ещё есть такая ос как debian, у которой стабильная ветка отстаёт от текущего времени на 1-2 года. Не удивлюсь, что там по дефолту Qt5.6. Я уже молчу про ос, которые собраны для эмбедед для старого железа и там версии куда старше. Цитировать я не пользуюсь самоучителями .... я читал лишь официальную документацию и официальную книжку от Qt Это не документация, а самоучитель. Документация - это ассистент.Цитировать можно же и на сайте с документацией искать, не так ли? не люблю искать на сайте qt что-то, но тем не менее иногда ищю. сайт qt - я бы назвал говносайт. очень они его испортили. заходишь doc.qt.io - выбирай 5 или 6. Выбрал 5 - получи 5.15. Мне нужно 12. А 12 надо сходить в приют для собак, взять пару исщеек и искать собаками. В отличии например от boost.org - там всегда можно в пару кликов получить документацию на любую версию. а на qt... даже скачать... слышал от многих программистов"-Теперь старую версию Qt нельза скачать с оф сайта. " Но есть сайт download.qt.io. Как с сайта qt.io попасть на download.qt.io? хз Цитировать или вот так через обычный веб поисковик: <ключевые слова> site:doc.qt.io а ты сам пробовал? я попробовал. вот результат (http://yaforyou.ru/?q=property%20site:doc.qt.io). Если хочешь дать совет, которым сам не пользуешься - попробуй сам сначала так поискать. Цитировать я бы относился к тебе как к новичку и? ты бы не сказал Read The Fucking Manual? очень сомневаюсь. Очень часто вижу на форумах заходит новичёк, что-то спросит, элементарную вещь, ему вместо помощи накидают ссылок на книжки Страуструпа и на стандарт ISO/IEC. а если новичек посмеет ещё что-то спросить, то ему накидают полную панамку такие как ты, со словами "намного лучше, чтоб все сделали за тебя ". Цитировать или хотя бы просто сделать Ctrl+F по слову function ))))) я же говорю - прежде чем давать такие советы - ПОПРОБУЙ САМ. Я попробовал - 93 совпадения. Вся страничка, от начало до конца, засвечена словом function. Цитировать > vs очевидно у тебя больше знаний и опыта в qml и js. Открою секрет: этот форум (и аналогичные) существуют чтобы обмениваться опытом и обращаться сюда за помощью. открою секрет: я тоже не знал как сделать свойство коллбэка, но я воспользоваться здравым смыслом и у меня все получилось. Цитировать - пишем в гугл js callback - попал сюда (https://learn.javascript.ru/callbacks). прочитал.... прочитал ещё раз..... и ещё... теперь - как это связать с qml? и вообще какой отношение ЭТО имеет к qml? Мне, например, в этой статье не хватает примера для qml. Был бы он там - я бы сюда не заходил. И не нужно говорить - "там всё очевидно" и "про здравый смысл". Было бы везде всем всё очевидно - не нужны были бы такие форумы, учебники, самоучители и "официальные книжки". Открыл ассистент или ISO/IEC - и все вопросы отпали. Цитировать или вот ты новичок в QML. все, что ты знаешь — что там можно писать жс код, даже если толком в жс не умеешь. ... ага, кроме var ничего не подходит как ты проходишь по этому пути? Ты думаешь я не открывал типы в QML. Открывал....bool - Binary true/false value - этот тип мне не подходит. мне нужен тип "указатель или ссылка на функцию"... смотрю следующий тип... double - Number with a decimal point, stored in double precision - это тоже не то ..... var - Generic property type - этот тип мне не подходит. мне нужен тип "указатель или ссылка на функцию". больше типов нет. Если бы ты мне одну строчку в первом ответе скопипастил бы с асистанта property var aFunction: (function() { return "one"; }) или ссылку на эту страничку - я бы с благодарностью закрыл тут же эту тему. человек может прочитать RM и что-то пропустить, просмотреть, ошибиться, не смочь провести аналогию. Для этого и существует общение и форумы. Да даже ты мне сказал "очевидно var". Мне не очевидно. Я открываю ассистент, смотрю ещё раз все типы, нахожу var - Generic property type... да зачем мне тип Generic? Мне нужен тип "указатель на функцию". Я даже не провалился в var. Цитировать но, очевидно, намного лучше, чтоб все сделали за тебя это ты так решил. моё мнение - "покажите как нужно". Но такие как ты, всё равно будут долбить про и вот ещё.... Цитата: kambala переходим по его ссылке, и... о боги! там даже есть пример как функцию в свойство засунуть! а чуть ранееЦитата: kambala > Где-то есть в мануалах/примерах как в качестве проперти делать функцию? в документации вроде не попадалось Цитата: kambala ...я ...документацию QML очень плотно читал, чтобы понять что там вообще есть, какие подходы можно использовать и т.д. Т.е. ты такой весь гуру... читал ПЛОТНО документацию по QML и в документации тебе это не попадалось!? А оно там есть. И ты меня тут учишь плотно читать документацию, сам так делаешь и сам же не видишь, что в этой документации? это тебе ни на что как-бы не намекает? ещё раз говорю - будьте толлерантны к тем, кто обращается за помощью. Мне давно известно, что прочтение документации не даёт 100%-ых знаний. Даже ПЛОТНОЕ прочтение документации. Без практики, советов более опытных, без разъяснений и примеров освоение материала длительно и сложно. Надеюсь ты тоже это поймёшь (хотя бы на своем примере) и в будущем к обращению за помощью будешь относиться не как "сделай это за меня" и думать что "ты ленишься читать документацию и/или искать ответы самостоятельно, а вместо этого первым делом бежишь на форум.". И надеюсь ты поймёшь, что если человек что-то спросил тут, это не означает, что он не читал ПЛОТНО документацию и не пытался найти ответ в гугле. Название: Re: Доступ до дочерних элементов Отправлено: juvf от Февраль 10, 2023, 14:48 > qt5.12 Собираю свою сборку Linux для своей железки в buildroot. Там галочку ставишь "Qt5" - при сборке собираются библы qt в rootfs. Выбора версии Qt нет. Собиралась всегда Qt5.12. Не самая свежая. всё, что мне нужно работает.и как я должен об этом узнать? вообще, не вижу смысла использовать версии ниже 15 из 5-й линейки, но может у тебя там что-то экзотическое, конечно. это еще хорошо, что я не использовал какую-нить фичу из 6-й версии :) Далее.... пишу свой апликэшин для этой сборки - работает. По тихоньку моё приложение обрастает функционалом.... И черт меня дернул сделать git push buildroot. Обновил билрут до самого свежего. Ну и ладно, мой конфиг неизменный, в моём конфиге билрута моё ядро и мои настройки. Посвежееют некоторые библиотеки - ни чего страшного. Посвежели. Теперь галочка в билруте "Qt5" подтягивает Qt5.15.8. Хорошо, пересобрал rootfs, запускаю свою прогу - больше моя прога не работает. выдает Код: ASSERT: "targetObjectIndex >= 0" in file ../../include/QtQml/5.15.8/QtQml/private/../../../../../src/qml/qml/qqmlpropertycachecreator_p.h, line 828 Это к вопросу о смыслах использовать не самое свежее ПО. Название: Re: Доступ до дочерних элементов Отправлено: kambala от Февраль 10, 2023, 18:52 ну тут же непонятно в чем проблема: может у тебя код кривой, и раньше в Qt на это «закрывались глаза», а теперь добавили проверку. а может и баг в Qt забрался, такое тоже возможно.
если это прямо при запуске происходит, то на всякие начальные объекты и смотреть надо, отключать их по частям чтоб определить кто виноват. еще можно на багтрекере/в гугле поискать один ты такой или нет (и открыть баг, если один). есть еще хороший проект с бэкпортами всяких патчей на последнюю 5.15 LTS: https://community.kde.org/Qt5PatchCollection P.S. что такое билдрут не знаю и вообще мир «железок» мне незнаком |