IscanderChe
Dec. 13, 2020, 12:30 a.m.

Использование Button в качестве делегата ListView

Добрый вечер.

Написал делегата для ListView на основе Button. Без параметров signal и onClicked, где должен быть указан сигнал, всё прекрасно работает. С этими параметрами засада, поскольку на файл модели Qt Creator ругается "ListElement: cannot use script for property value". Я понимаю, что сделал глупость, когда указал в качестве параметра сигнал infoClicked() (см. второй листинг).

Как обойти эту засаду? Мне бы хотелось, чтобы кнопки взаимодействовали с кодом Qt, и тут без сигналов никуда.

main.qml

  1. Component {
  2. id: buttonDelegate
  3. Button {
  4. id: button
  5. Image {
  6. id: image
  7. source: imageSource
  8. opacity: button.down ? 0.5 : 1
  9. }
  10. objectName: objectNameButton
  11. signal signalButton
  12. onClicked: signalButton
  13. ToolTip.visible: hovered
  14. ToolTip.timeout: 2000
  15. ToolTip.text: qsTr(toolTipText)
  16. }
  17. }
  18.  
  19. ListView {
  20. anchors.fill: parent
  21. model: ButtonsModel {}
  22. delegate: buttonDelegate
  23. }

ButtonsModel.qml

  1. ListModel {
  2. ListElement {
  3. imageSource: "qrc:/images/Flex-icon.png"
  4. toolTipText: "Save the active project"
  5. objectNameButton: "button1"
  6. signalButton: infoClicked()
  7. }
  8. }
1

Do you like it? Share on social networks!

1
t
  • Dec. 13, 2020, 1:36 a.m.

https://bugreports.qt.io/browse/QTBUG-80041
https://bugreports.qt.io/browse/QTBUG-80041?focusedCommentId=519352&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-519352

    Comments

    Only authorized users can post comments.
    Please, Log in or Sign up
    • Last comments
    • AK
      April 1, 2025, 11:41 a.m.
      Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
    • Evgenii Legotckoi
      March 9, 2025, 9:02 p.m.
      К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
    • VP
      March 9, 2025, 4:14 p.m.
      Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
    • ИМ
      Nov. 22, 2024, 9:51 p.m.
      Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
    • Evgenii Legotckoi
      Oct. 31, 2024, 11:37 p.m.
      Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup