QML에서 사용자 정의 속성을 만들 수있는 방법이 있습니까? 예를 들어, 뭔가 같은 :QML - 필수 사용자 정의 속성
property required int numRows
I은 구성 요소가 없이는 작동하지 않기 때문에 구성 요소의 사용자가 특정 속성을 전달하는 시행합니다.
QML에서 사용자 정의 속성을 만들 수있는 방법이 있습니까? 예를 들어, 뭔가 같은 :QML - 필수 사용자 정의 속성
property required int numRows
I은 구성 요소가 없이는 작동하지 않기 때문에 구성 요소의 사용자가 특정 속성을 전달하는 시행합니다.
아니요, 할 수 없습니다. 가장 강력한 방법은 속성에 유효한 기본값을 지정하는 것입니다.
해결 방법이 잘못된 값을 제공 할 수있다 (예 : -1)과 항목의 Component.onCompleted 슬롯에 값을 확인하고 속성이 유효하지 않습니다 경우 CONSOLE.LOG을 보여 ...
하지만, 첫 번째 방법을 선호합니다. 구성 요소는 재사용 성 목표를 위해 항상 기본값으로 사용할 수 있어야합니다!
Qt 트롤은 Component.onCompleted가 대부분의 작업을 수행하는 선호되는 방법이 아니라 구현해야하는 해킹이라고 스스로에게 이야기했습니다.
MyItem{
property int myvalue: -1
enabled: myvalue != -1 // Use other number if neccesary
}
이 상호 작용 요소를 가능하게 작동,하지만 더 흥미로운 물건처럼 만들 수 있습니다 :
가장 좋은 수는 선언적 스타일 블러를 사용하는 것입니다,이 같은 일이 이상적 일 것이다
MyItem{
property int myvalue: -1
onMyvalueChanged:{
enabled = true
callMyInitFunction(something)
}
}
사용자가 값을 변경하면 트리거되어 다른 함수 나 이니셜 라이저를 호출 할 수 있습니다. init을 한 번만 실행하려면 비활성화되어 있는지 확인하십시오.
MyItem{
property int myvalue: -1
onMyvalueChanged:{
if (!enabled){
enabled = true
callMyInitFunction(something)
return
}
// Stuff to do of already initialized
callOtherStuff(otherThing)
}
}
마지막으로, 당신이 쓴 단어를 읽고 당신이 대신 개체에 대한 자바 스크립트 함수를 작성하고 호출 할 수 것 같다 "특정 속성을 전달합니다."
MyItem{
property int _myprop: 0
function launch(param1, param2, param3){
_myprop = param3
// do stuff
}
}
그런 다음 재사용 가능한 Dialog에서 사용할 수있는 대화 상자를 만들 때 대신 실행하면됩니다. 사용 사례에 따라 다릅니다.
물론 필요한 것을 따라 여러 가지 방법이 있습니다.
'Qt '방법은 구성 요소가'qWarning()'을 사용하여 경고를 표시하거나 표시하지 않거나 구성 요소 자체 내에 경고를 표시하는 것입니다. – user1095108