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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 38
16  Qt / Qt Quick / Re: Доступ до дочерних элементов : Январь 19, 2023, 13:45
что как бы намекает Улыбающийся
немекает на что? что я плохо знаю qml? Я прямо говорю - я плохо знаю qml, и что? Я не могу обратиться сюда за помощью?

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

вместо того, чтобы в моём коде исправить 1-2 строчки - вы написали свой код, в 16 строк (не лень же было). т.е. один раз ударить топором по моему qt5.12 бревну - это для вас "я за вас делать не буду", а построить рядом свой дом из qt5.15 кирпича как пример - вам на это не жалко вермени.

Цитировать
начальное значение для свойства необязательно, а ты о них не знал,
да.... не знал... повешаться теперь?.... рассказать вам как проходит самообучение языку программирования? Правильно, по самоучителю. А если его нет, то по урокам, примерам.... Нужно было отрисовать в qml - открыл уроки... ага - есть Item, есть Text, есть синтаксис... всё понятно. В уроке показали как задавать проперти
property int name: 123   - выучил.

Открываю асистент - вбиваю туда "property" - нет там этих 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 мне ни чего не нужно. открываю вашу ссылку и там на! на! на! по голове и вижу - в это всё надо погружаться, во всё вникать .... это надо учить и чтобы не забыть - практиковаться. Но мне это не нужно. У меня совершенно другие задачи.
17  Qt / Qt Quick / Re: Доступ до дочерних элементов : Январь 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 {
width: 640
height: 480
visible: true
title: qsTr("Hello World")

B {
callback: () => console.log("hello")
}

component B: Item {
property var callback

Button {
onClicked: callback()
text: "test"
}
}
}
Что это такое? например вот это
Цитировать
   B {
      callback: () => console.log("hello")
   }
что такое B? (вопрос риторический) объявление нового компонента? Я не гуру в qml, часто обращаюсь к мануалам, часто изучаю чужой код, чужие примеры, смотрю/читаю уроки... я не разу не видел такой записи.

Далее... вот эта сточка
Код:
component B: Item {
Что такое Item - я знаю. Но что такое component - нет. Гугл асистент в помощь. Открываю QtC->асистент, вбиваю "component", он находит в qml ТОЛЬКО в SceneLoader метод component. Но в приведённом вашем коде нет ни каких SceneLoader. Так что эта строчка обозначает? (это тоже вопрос риторический).


Я это всё к тому, что я qml и js изучаю в бою. по большому мне они не нужны, т.е. я не собираюсь быть профессиональным программистом в qml или js. Мне они нужны по стольку по скольку. мне бы через указатель вызвать функцию по нажатию кнопки и все, и поехал дальше... задач основных - завал. Да... со временем, если буду часто в qml конечно руку набью... но сейчас разбираться что такое "component B"Непонимающий

pps за алиасы ещё раз спасибо. рука набивается.


18  Qt / Qt Quick / Re: Доступ до дочерних элементов : Январь 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 сделать указатель на функцию без аргументов? Как сделать указатель на функцию с аргументами? как вызывать функцию через указатель? Как сделать указатель на функцию с аргументами, которая возвращает значение?
19  Qt / Qt Quick / Re: Доступ до дочерних элементов : Январь 18, 2023, 13:01
вот простейший пример:

Да, с холовордом заработало. спасибо. Я же говорю, с синтаксисом не понятно. А как это сделать с функцией, в которую передаются аргументы?

кстати activePage у тебя можно сделать просто как алиас на but.highlighted
так я его вынес в проперти, т.к. нужно его менять but.highlighted снаружи, т.е. снаружи нужно получить доступ до дочерних эл-ов.
20  Qt / Qt Quick / Re: Доступ до дочерних элементов : Январь 18, 2023, 07:16
надо добавить нужные property [alias] в свой элемент, это подробно описано в документации
где подробно описано в документации как вынести callback в property?  Можете в моем коде добавить этот проперти? какой синтаксис?
21  Qt / Qt Quick / Re: Доступ до дочерних элементов : Январь 18, 2023, 07:14
Хорошо..... вот сделал свою кнопку. Со свистелками... рюшечки обои... тени/подсветка/эффекты.... обрамил её ректом

Код:
Rectangle{
    id: myButton
    property bool activePage: false
    property string textButton: ""
    property string imageSource: ""

    Button{
        id: but
        anchors.fill: parent
        highlighted: activePage
        clip: true
        onClicked: {
            callback(); //как вынести этот callback в свойства
            // Запускаем анимацию
            colorRect.x = pressX
            colorRect.y = pressY
            circleAnimation.start()
            colorAnim.start()
            }
      }
}

получился довольно тяжелый корневой Rectangle, поэтому вынес его в отдельный *.qml фаил. Там, где надо использовать - объявляю экземпляр кнопки и задаю ей через свойства картинку, текст, цвет....
но в разных местах в разных экземплярах этой кнопки мне нужно при нажатии разные действия на нажатие. Как теперь экземплярам этой кнопки указывать разные callback-и?
22  Qt / Qt Quick / Re: Доступ до дочерних элементов : Январь 16, 2023, 11:20
1) текст можно через property поменять. А как поменять вызываемую функцию через property? Какой должен быть тип?
2) я для упрощения сделал маленький myButton. На самом деле в нем много всяких вложенных объектов, в которые вложены другие... мне не очень нравиться выносить всё, что требуется менять, выносить 100500 property. Есть способ добраться до дочерних элементов без property ?
23  Qt / Qt Quick / Доступ до дочерних элементов : Январь 16, 2023, 10:02
Как поменять свойства дочерних элементов?

есть свой элемент MyButton.qml

Код:
Rectangle{
    id: myButton
    width: 93
    height: 93
    color: "transparent"

    Button{
        id: butPage
        anchors.fill: parent
        onClicked: {
            updateFocusAudio(myButton);
            }

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

допустим я добавляю куда-нибудь эту свою кнопку и хочу поменять текст и/или колбэк по нажатию. как это сделать? Попробовал так


Цитировать
Item:{
     id: mainForm
     MyButton{
           butPage.onClicked: updateFocusAudio(myButton)
           temeratureText.text: "13"
     }
}
ошибка компиляции. butPage и temeratureText - invalid property name. как это правильно сделать?
24  Qt / Qt-инструментарий / Свистелки-пирделки в QtCreator : Ноябрь 22, 2022, 08:23
С каждым годом QtCreator обрастает всё новыми и новыми (зачистую глючными) свистелками-пирделками, при этом очевидный базовый функционал стоит в жестчайщем тупике (например невозможно смотреть QDom* в отладчике).

Сейчас при отладке выскакивают какие-то подсказки, которые мне мешают. См скрин - на сером фоне в основном окне, справа, значение переменных. бывает полэкрана в этих подсказках... Как их отключить?
Ладно бы эти фичи работали..... отодвигаю горизонтальный скрол и см 2-ой скрин - кракозябры.
25  Qt / Qt Quick / ListView + Drag'n'Drop : Ноябрь 03, 2022, 12:28
Добрый день, может тему озаглавил не так, но.... есть задача....

Есть несколько айтемов, допустим 10 кнопок. Они помещены в  ListView. 10 кнопок горизонтально расположены. по любой кликаешь - происходит обработка события.
Теперь нужно добавить функционал: сортировку кнопок и удаление кнопок.

1) Сортировку хотелось бы ткнуть в кнопку долги нажатием, взять её и перетащить по ListView и бросить между двумя другими. кнопки должны "отсартироваться" в новом порядке и выровнятся. Если кнопку бросить мимо ListView, она должна вернуться на место.

2) Удаление - чиркнул по кнопке веерх или вниз - кнопка улетела/удалилась. остальные сомкнулись.

Подобный функционал есть в андроиде в уведомлениях. или гденить в фотогалереях... как такое реализовать? куда глянуть?
26  Qt / Qt Quick / Re: QML Slider : Октябрь 24, 2022, 13:30
по ней можно ориентироваться как написать свою.

CheckLabel — это наверно что-то приватное, можно взять обычный Text или Label. https://doc.qt.io/qt-5/qtquickcontrols2-customize.html#customizing-switch как пример
Дааааа!!!
Код:
        contentItem: Text {
            text: dayNight.text
            font: dayNight.font
            color: "white"
            verticalAlignment: Text.AlignVCenter
            leftPadding: dayNight.indicator.width + dayNight.spacing
        }
СРАБОТАЛО!!! Спасибо!
27  Qt / Qt Quick / Re: QML Slider : Октябрь 24, 2022, 13:06
стандартная реализация выглядит так (лежит в QTDIR/qml/QtQuick/Controls.2/Switch.qml):
да, нашел её. а как использовать стандартную реализацию?
пробую
Код:
    Switch
    {
        id: dayNight
        text: "Day Night"
        anchors.left: parent.left
        anchors.verticalCenter: parent.verticalCenter
        onCheckedChanged: mainWindow.isDay = dayNight.checked ? false : true
        contentItem: CheckLabel //на этой строке ошибка. CheckLabel  - анкноун элемент.
        {

        }
    }
28  Qt / Qt Quick / Re: QML Slider : Октябрь 24, 2022, 12:10
так а откуда у тебя там текст?
Сорри, не слайдер, а Switch (он просто выглядит как слайдер в 2-мя позициями."

Я добился сметы цвета текста. но съехали "якоря". как теперь выровнять - не получается.

Код:
    Switch
    {
        id: dayNight
        text: "Day Night"
        anchors.left: parent.left
        anchors.verticalCenter: parent.verticalCenter
        font.pixelSize: 24
        onCheckedChanged: mainWindow.isDay = dayNight.checked ? false : true
        contentItem: Text {
        //    rightPadding: dayNight.indicator.width + dayNight.spacing
            text: dayNight.text
            font: dayNight.font
            color: "white"
            //anchors: dayNight.anchors
      //  elide: Text.ElideRight
      //         verticalAlignment: Text.AlignVCenter

        }
    }
Текст и слайдер (который свитч) друг на друге.


29  Qt / Qt Quick / Re: QML Slider : Октябрь 24, 2022, 10:13
QtQuick.Controls 2.15

Я промучился со свойствами... не могу найти текст.
30  Qt / Qt Quick / QML Slider : Октябрь 24, 2022, 08:08
Доброго дня.

Кто знает как поменять цвет текста у QML Slider? (а также шрифт, размер шрифта, ориентацию текста (слева/справа/сверху/снизу от слайдера?)
Страниц: 1 [2] 3 4 ... 38

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