L
LastLeaf7 ноября 2019 г. 12:48

Qt.QML Как вызвать из main.qml файла функцию находящуюся в другом файле?

Qt

//main.qml:

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Object2{ id:obj2}   
    Object3{ id:obj3}

    Button
    {
        id: button
        x: 231
        y: 65
        text: "button";
        onClicked:
        {
          //animation_2.start()      // Как запустить эти анимации?
          //animation_3.start()
        }
    }
}

//Object2.qml:

Item {
    NumberAnimation on y
    {
        objectName:"animation_2"
        id:animation_2
        from:900
        to:-200
        duration:5000
        running:true
    }
}

//Object3.qml:

Item {
    NumberAnimation on y
    {
        objectName:"animation_3"
        id:animation_3
        from:900
        to:-200
        duration:5000
        running:true
    }
}

Обьекты animation_2 и animation_3 он в упор не видит, уже второй день бьюсь. Предлагали так : obj2.animation.start() и obj3.animation.start() - но так отображаются только свойства обьекта.Буду благодарен за помощь.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
2

Напишите функции в каждом QML файле Object

Item {

    function startAnimation()
    {
        animation_2.start();
    }

    NumberAnimation on y
    {
        objectName:"animation_2"
        id:animation_2
        from:900
        to:-200
        duration:5000
        running:true
    }
}

и вызывайте анимацию в main.qml

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Object2{ id:obj2}   
    Object3{ id:obj3}

    Button
    {
        id: button
        x: 231
        y: 65
        text: "button";
        onClicked:
        {
            obj2.startAnimation()
        }
    }
}
L

Спасибо, все получилось! Дай бог тебе здоровья!

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Timeweb

Позвольте мне порекомендовать вам отличный хостинг, на котором расположен EVILEG.

В течение многих лет Timeweb доказывает свою стабильность.

Для проектов на Django рекомендую VDS хостинг

Посмотреть Хостинг
VD

C++ - Тест 001. Первая программа и типы данных

  • Результат:73баллов,
  • Очки рейтинга1
Ds

C++ - Тест 003. Условия и циклы

  • Результат:64баллов,
  • Очки рейтинга-1
o

C++ - Тест 001. Первая программа и типы данных

  • Результат:86баллов,
  • Очки рейтинга6
Последние комментарии
D:

QML - Урок 016. База данных SQLite и работа с ней в QML Qt

Добрый день, пытаюсь разобраться и подргнать пример под себя. Есть бд с огромным количеством полей. В приложении на виджетах при использовании QTableView все работает и путем простого sql запрос…

Django - Урок 039. Добавление личных сообщений и чатов на сайте - Часть 2 (Счётчик диалогов и чатов с непрочитанными сообщениями)

Добавляйте поле файла в модель сообщения. И в форме сообщения указывайте, что поле с файлом.
s

Django - Урок 023. Like Dislike система с помощью GenericForeignKey

все, я со всем разобрался!) Извините!)
s

Django - Урок 023. Like Dislike система с помощью GenericForeignKey

Доброго времени суток!) Я случайно набрел на вашу статью, и она помогла мне решить некоторые мои трудности, я прошел за вами по шагам, в попытках адаптировать это под себя, и возник вопрос. У ва…
Сейчас обсуждают на форуме
М

QML: изменение стиля при наведении и при нажатии на кнопку

enabled = false перестанет быть активной и не будет ни на что реагировать) Хм.. по-моему пробовал такое. Проверю ещё раз после работы. Ура, спасибо большо…
U

Динамическое наполнение StackView QML

Во затупил))) Спасибо за все))) StackView.push("ModuleTip1.qml") ну или в сложной иерархии StackView.push("qrc:/folder/ModuleTip1.qml") и всего делов... Не пойму, почему сра…

QEventLoop тормозит при удалении экземпляра

Думаю, что нет. Лучше вообще без исключений, но не всегда возможно.
s

Ключевое слово class

Разобрался,на стаковерфлоу нашел топик и понял почему так происходило .

Поведение пустой очереди std::queue

Спасибо, так и сделал.
О нас
Услуги
© EVILEG 2015-2020
Рекомендует хостинг TIMEWEB