Russian Qt Forum
Ноябрь 22, 2024, 01:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Доступ до дочерних элементов  (Прочитано 8636 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #15 : Январь 19, 2023, 16:36 »

> немекает на что? что я плохо знаю qml?
на то, что ты ленишься читать документацию и/или искать ответы самостоятельно, а вместо этого первым делом бежишь на форум. ты не новичок в программировании, поэтому-то и странно видеть такой подход.

> что я сделал не так? Поправьте, покажите как нужно?
так я тебе сразу и задал нужное направление на property [alias], вот только эффекта оно не сильно-то и возымело... задача помочь необязательно заключается в написании нужного кода в точности — куда важнее направить в верное русло, чтобы человек сам додумался до решения (тут же и практическая часть), вот от этого куда больше пользы будет. может, если б ты сразу сказал, что мне надо «хуяк-хуяк и в продакшн», то обошлись бы готовым кодом.

> вместо того, чтобы в моём коде исправить 1-2 строчки - вы написали свой код, в 16 строк
твой код не является законченным приложением, которое можно сразу собрать. почему я должен тратить на это время? у меня под рукой есть хеллоуворлд проект, вот я на нем и добавил пару строк в существующий файл. ты ж не новичок, сможешь адаптировать его под свой Улыбающийся

> qt5.12
и как я должен об этом узнать? вообще, не вижу смысла использовать версии ниже 15 из 5-й линейки, но может у тебя там что-то экзотическое, конечно. это еще хорошо, что я не использовал какую-нить фичу из 6-й версии Улыбающийся

> рассказать вам как проходит самообучение языку программирования? Правильно, по самоучителю
я не пользуюсь самоучителями и все получается, ЧЯДНТ? если говорить про QML, я читал лишь официальную документацию и официальную книжку от Qt (и то, книжку можно кусками читать, т.к. там еще разные модули рассматриваются), и несколько раз приходилось гуглить неочевидные вещи.

> Открываю асистент - вбиваю туда "property" - нет там этих property
я не знаю насколько полон ассистент по сравнению с сайтом, чаще всего использую его именно как контекстную подсказку по ф1. можно же и на сайте с документацией искать, не так ли? или вот так через обычный веб поисковик: <ключевые слова> site:doc.qt.io

> не знаю. а что бы поменялось? вы бы не стали меня заставлять читать доки и без комментариев поправили бы мой код?
я бы относился к тебе как к новичку, а не как к программисту со стажем с соответствующими навыками

> я не хочу быть проф. прогарммистом qml и божеупаси js. жысть заставила заглянуть в qml...
у меня тоже таких планов нет, но был очень сильный интерес к QML. жс в контексте QML — это просто С-подобный язык, это в вебе и электроне там всякие ужасы Улыбающийся

> открываю вашу ссылку и там
если все-таки уделить несколько минут чтению или хотя бы просто сделать Ctrl+F по слову function, а если еще и вспомнить, что я говорил об альтернативной форме записи... можно такое обнаружить!

> vs
открою секрет: я тоже не знал как сделать свойство коллбэка, но я воспользоваться здравым смыслом и у меня все получилось.

могу рассказать как можно до этого дойти самостоятельно из твоего положения за минуты, не тратя 3 дня на форум:
- пишем в гугл js callback (ну или то же самое на русском)
- или вот ты новичок в QML. все, что ты знаешь — что там можно писать жс код, даже если толком в жс не умеешь. тебе хочется понять какой же тип задать свойству коллбэка. для начала надо понять какие существуют типы в QML, для этого придется открыть документацию (наверняка эта страница и в ассистенте есть). читаем какие есть типы: ага, кроме var ничего не подходит, переходим по его ссылке, и... о боги! там даже есть пример как функцию в свойство засунуть!

но, очевидно, намного лучше, чтоб все сделали за тебя Улыбающийся
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #16 : Январь 20, 2023, 08:13 »

> немекает на что? что я плохо знаю qml?
ты ленишься читать документацию и/или искать ответы самостоятельно, а вместо этого первым делом бежишь на форум.
ну еще один экстрасенс. от куда ты знаешь что я сделал первым делом? свечку держал? да обращаться на форум - это вообще самое последнее дело, тем более где такое хамло как ты.

Цитировать
> что я сделал не так? Поправьте, покажите как нужно?
так я тебе сразу и задал нужное направление на property [alias], вот только эффекта оно не сильно-то и возымело...
во первых про алиас я поблагодарил. во вторых "покажите как нужно?" - это было про функции. см мой первый пост - "как это правильно сделать?". Как правильно сделать пропертями функцию? Где ты мне дал направление? Отправил читать документацию и следующим постом написал - "этого в документации нет". Это твоё направление? или написал свой непонятный код и заставил учить js?

Цитировать
может, если б ты сразу сказал, что мне надо «хуяк-хуяк и в продакшн», то обошлись бы готовым кодом.
я сразу сказал - "Как это правильно сделать?". был бы готовый код - я бы сам решил - если мне в дальнейшем это надо, я бы поискал доки на этот код или тут бы спросил. если не нужно - копипаст и забыл.

Цитировать
ты ж не новичок, сможешь адаптировать его под свой
ты представляешь, не смог. вот так смог
Код:
Rectangle{
    id: myButton
    width: 93
    height: 93
    color: "transparent"

    Button{
        id: butPage
        anchors.fill: parent
        onClicked: {
            callback()
            }

        Text {
            id: temeratureText
            text:  "12"
        }
}

Цитировать
Item:{
     id: mainForm
     MyButton{
           callback: () => console.log("hello")
     }
}
но мне нужно не одну строчку 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
а ты сам пробовал? я попробовал. вот результат. Если хочешь дать совет, которым сам не пользуешься - попробуй сам сначала так поискать.

Цитировать
я бы относился к тебе как к новичку
и? ты бы не сказал Read The Fucking Manual? очень сомневаюсь. Очень часто вижу на форумах заходит новичёк, что-то спросит, элементарную вещь, ему вместо помощи накидают ссылок на книжки Страуструпа и на стандарт ISO/IEC. а если новичек посмеет ещё что-то спросить, то ему накидают полную панамку такие как ты, со словами "намного лучше, чтоб все сделали за тебя ".
 
Цитировать
или хотя бы просто сделать Ctrl+F по слову function
))))) я же говорю - прежде чем давать такие советы - ПОПРОБУЙ САМ. Я попробовал - 93 совпадения. Вся страничка, от начало до конца, засвечена словом function.

Цитировать
> vs
открою секрет: я тоже не знал как сделать свойство коллбэка, но я воспользоваться здравым смыслом и у меня все получилось.
очевидно у тебя больше знаний и опыта в qml и js. Открою секрет: этот форум (и аналогичные) существуют чтобы обмениваться опытом и обращаться сюда за помощью.

Цитировать
- пишем в гугл js callback
- попал сюда. прочитал.... прочитал ещё раз..... и ещё... теперь - как это связать с 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%-ых знаний. Даже ПЛОТНОЕ прочтение документации. Без практики, советов более опытных, без разъяснений и примеров освоение материала длительно и сложно. Надеюсь ты тоже это поймёшь (хотя бы на своем примере) и в будущем к обращению за помощью будешь относиться не как "сделай это за меня" и думать что "ты ленишься читать документацию и/или искать ответы самостоятельно, а вместо этого первым делом бежишь на форум.". И надеюсь ты поймёшь, что если человек что-то спросил тут, это не означает, что он не читал ПЛОТНО документацию и не пытался найти ответ в гугле.
« Последнее редактирование: Январь 20, 2023, 10:54 от juvf » Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #17 : Февраль 10, 2023, 14:48 »

> qt5.12
и как я должен об этом узнать? вообще, не вижу смысла использовать версии ниже 15 из 5-й линейки, но может у тебя там что-то экзотическое, конечно. это еще хорошо, что я не использовал какую-нить фичу из 6-й версии Улыбающийся
Собираю свою сборку Linux для своей железки в buildroot. Там галочку ставишь "Qt5" - при сборке собираются библы qt в rootfs. Выбора версии Qt нет. Собиралась всегда Qt5.12. Не самая свежая. всё, что мне нужно работает.

Далее.... пишу свой апликэшин для этой сборки - работает. По тихоньку моё приложение обрастает функционалом.... И черт меня дернул сделать 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
Aborted
Вопросы риторические: Что с этим делать? Что за qqmlpropertycachecreator_p? я в коде property cache creator ни где не использую.

 Это к вопросу о смыслах использовать не самое свежее ПО.
   
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #18 : Февраль 10, 2023, 18:52 »

ну тут же непонятно в чем проблема: может у тебя код кривой, и раньше в Qt на это «закрывались глаза», а теперь добавили проверку. а может и баг в Qt забрался, такое тоже возможно.

если это прямо при запуске происходит, то на всякие начальные объекты и смотреть надо, отключать их по частям чтоб определить кто виноват. еще можно на багтрекере/в гугле поискать один ты такой или нет (и открыть баг, если один).

есть еще хороший проект с бэкпортами всяких патчей на последнюю 5.15 LTS: https://community.kde.org/Qt5PatchCollection

P.S. что такое билдрут не знаю и вообще мир «железок» мне незнаком
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.067 секунд. Запросов: 22.