2015-05-07 2 views
0

Я создал свой собственный элемент с сигналом clicked, что contatins MouseArea. Я хочу испустить сигнал clicked, когда щелкнут MouseArea. Но ничего не работает. Вот мой .qml код:Невозможно испустить сигнал в QML пользовательский Пункт

import QtQuick 2.4 

Item { 

    id: baseButton 

    property alias text: txt.text 
    width: txt.width 
    height: txt.height 

    signal clicked 

    onClicked : console.log("Clicked!") 

    Text { 
     id: txt 
     color: "white" 
     font.pointSize: 8 
     anchors.centerIn: parent 
    } 

    MouseArea { 
     id: mousearea 
     anchors.fill: parent 
     hoverEnabled: true 

     onEntered: { 
      txt.color = "yellow" 
      txt.font.pointSize = 15 
     } 

     onExited: { 
      txt.color = "white" 
      txt.font.pointSize = 8 
     } 

     onClicked: baseButton.clicked 
    } 
} 

Я буду очень благодарен за помощь!

ответ

3

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

Так просто изменить эту строку:

onClicked: baseButton.clicked() 
Смежные вопросы