U
Undergiven30 апреля 2021 г. 6:36

qml зажатая кнопка мыши в одной MouseArea и сигналы мыши из другой MouseArea

qml

Здравствуй, любимый форум и его гуру! Трепетно молю о мудрости и всевозможных подсказках в моей проблеме!

Имеется конструкция такого вида:

ScrollView{
    id: _scroll

    Column{    
      Repeater{
          id: _repeater
          model: 5
          delegate: Item {
              id: _delegateItem
              width: 50px
              height: 50px
              property int currentIndex: index

              MouseArea{
                  id: _mouseArea
                  anchors.fill: parent

                  onPressAndHold: {console.log("holded : " + currentIndex)}
                  onReleased: {console.log("released : " + currentIndex)}
                  onEntered: {console.log("entered : " + currentIndex)}
              }
          }
      }

      Item{
          id: _elseItem
      }
    }
}

Зажимая кнопку мыши в маусАрии №3 (условно будем считать, что № совпадает с индексом) - в консоль выводится "holded : 3", но если зажатую мышь перевести на другую маусАрию (допустим на №2) - то в консоль НЕ выводится "entered : 2".

Как добиться того, чтобы выводилось?

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

добрый, вы не пробовали отслеживать область видимости мышки через:

_mouseArea.containsMouse

и когда мышка будет в другой зоне видимости обрабатывать ее состояния?

U

прописал onContainsMouseChanged... Не помогло...
Зажимаю левую кнопку мыши на кнопке №1, вывожу из области кнопки №1, перевожу в область кнопки №2, в дебаге инфа:
-зажал №1
-изменилась область №1
и пока не отожмешь левую кнопку мыши - сигналы другой кнопки не обрабатываются

===

Затем попробовал добавить в onReleased свойство containsMouse:

onReleased: {
    if(containsMouse){
        console.log("release : " + currentIndex)
    }
}

Эффект тот же( не помогло(

ну начнем с того что это чуть не так работает, для примера:

    ScrollView{
        anchors.fill: parent
        anchors.topMargin: 10
        id: _scroll

        Column{
            anchors.fill: parent
          Repeater{
              id: _repeater
              anchors.fill: parent
              model: 5
              delegate: Rectangle {
                  id: _delegateItem
                  width: 150
                  height: 50
                  border.color: "red"
                  color: _mouseArea.containsMouse?"green":"white"
                  property int currentIndex: index


                  MouseArea{
                      id: _mouseArea
                      anchors.fill: parent
                        hoverEnabled: true
                      onPressAndHold: {console.log("holded : " + currentIndex)}
                      onReleased: {console.log("released : " + currentIndex)}
                      onEntered: {console.log("entered : " + currentIndex)}
                  }
              }
          }

          Item{
              id: _elseItem
          }
        }
    }

но когда переход с зажатой кнопкой то не отслеживает, думаю это проблема где-то глубоко в qml

Комментарии

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

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

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

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

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

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

  • Результат:80баллов,
  • Очки рейтинга4
ДЦ

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

  • Результат:46баллов,
  • Очки рейтинга-6
СБ

Qt - Тест 001. Сигналы и слоты

  • Результат:94баллов,
  • Очки рейтинга8
Популярные публикации за последние 90 дней
Последние комментарии
ЯО

Как соответствовать новым требованиям Google Play

Ку всем! Вопрос! Как с помощью JNI вызвать оплату на android устройстве? Попробовал Qt Purchasing вроде пошло... но android пишет что библиотека устарела. В qt6 пока поддержки purchasing нет. Р…

Django - Урок 014. Вывод списка популярных статей на Django

Я как понял, этот метод создает статистику каждый день (на каждый день), не удаляя старые данные за день и выводит все данные за сегодняшние просмотры у всех статей?

Qt/C++ - Урок 006. QSqlQueryModel - Таблицы в Qt с помощью SQL-запросов

Изменить запрос при создании модели.
L
  • Livis
  • 30 мая 2021 г. 13:18

Django - Урок 001. Развёртывание сайта на Django + PostgreSQL + Gunicorn + Nginx

Отвечал на все команды после sudo service supervisor start Исправил таким образом sudo killall supervisordsudo supervisord -c /etc/supervisor/supervisord.conf
D

Django - Урок 001. Развёртывание сайта на Django + PostgreSQL + Gunicorn + Nginx

Это на какую команду так отвечает?
Сейчас обсуждают на форуме
v
  • vika
  • 17 июня 2021 г. 0:19

Вопрос новичка ui-форма

все получилось. создала обьект, исправила ошибки и все заработало. спасибо, что есть с кем поговорить.
s

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

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

Django как воспользоваться результатом метода?

Priv = 2020 Now = 2021 Next = 2022 Rok = ( (None, "Nie wybran"), (Priv, '2020'), (Now, '2021'), (Next, '2022') ) Rok = models.IntegerField(choices=Rok, de…

QScrollArea dynamically add QCheckBoxes

Всё правильно. Это просто спамер, который отправился в вечный бан.

Папка с шаблоном сайта

Есть проект с поддержкой динамического создания поддоменов. Как назначить разные пути к шаблонам в templates from django.shortcuts import renderfrom horticulture.utilities import get_horticu…
О нас
Услуги
© EVILEG 2015-2021
Рекомендует хостинг TIMEWEB