Ive는 Qt 5.9.3을 기반으로 새로운 QML 프로젝트를 만들었습니다. 버튼뿐만 아니라 내 자신의 버튼 (MyButton)과 함께 간단한 ApplicationWindow를 설정하고 결코 onClicked() 이벤트를 발생 시켜서 (분명히) 둘 중 하나를 호출하지 않습니다. 내 응용 프로그램 창이 2 개의 버튼으로 표시됩니다. 둘 중 하나를 클릭하면 내 콘솔 출력에 아무것도 표시되지 않습니다.qml 단추가 실행되지 않음, MouseArea와 동일
또한 내 qml 소스 파일을 .pro 파일로 미리 컴파일하는 것이 중요하다. 시작시 글꼴 오류가 발생하여 C++에서 수정되었으므로 일부 글꼴이 표시되어 더 이상 읽을 수 없으며 오류 또는 경고가 표시되지 않습니다. Ive는 몇 시간을 단지 행운을 비면서 마우스 클릭 이벤트 을 간단하게하려고 노력했다.
도움을 주시면 감사하겠습니다.
import QtQuick 2.7
import QtQuick.Controls 2.0
ApplicationWindow {
visible: true
width: 640
height: 480
title: "App Title"
color: "white"
Button {
text: "Button"
onClicked: {
console.log("clicked")
}
}
MyButton {
anchors.right: parent.right
anchors.top: parent.top
onClicked: {
console.log("my button clicked")
}
}
}
및 MyButton.qml
import QtQuick 2.7
Rectangle {
id: button
width: 100
height: 50
color: "yellow"
signal clicked()
MouseArea {
id: mouseArea
anchors.fill: button
visible: false
enabled: true
onClicked: {
console.log("my button mouse clicked")
clicked()
}
}
}
UPDATE :
여기 내 main.qml의 나는 매우 어리석은 일을했다. 내 main.cpp 파일에서 내가 수행 한 내가 깨끗하게 될 것이라고 생각하고 자신의 별도의 방법으로 내 QQmlEngine 초기화 코드 이동합니다. 물론 엔진 레퍼런스가 을 벗어나면 내 문제가 발생했습니다. 잘못된 것으로 생각되면 qml 코드가 전혀 작동하지 않는다고 잘못 가정했기 때문에 거기를 보지 않았습니다. 이렇게 늦게까지 미안해, 매우 바쁜 주간이었고 대역폭을 낭비하는 것에 대해 유감스럽게 생각합니다. 나중에 참조 할 수 있도록 훌륭한 디버깅 제안을 해주셔서 감사합니다!