2014-04-23 4 views
0

QML 스핀 상자에서 C/C++ 코드로 데이터를 읽는 데 약간의 문제가 있습니다.QML 스핀 상자에서 데이터를 가져 오는 방법

void main_funcs::sys_set_voltage()   // sets system voltage percent of max range 
{ 
QQuickItem* object = myDialog->rootObject(); 
QObject *v_spin = object->findChild<QObject*>("v_pct");  // locate voltage spinbox 

QVariant vpct = v_spin->property("value").toUInt(); 
qDebug() << "SpinBox Data: " << vpct; 
... 

이 프로그램은이 시점에서 충돌을 제외한 컴파일 : 나는 다음과 같이 스핀 상자의 값을 찾는 기능이

SpinBox { 
    id: spinBox1 
    objectName: "v_pct" 
    x: 252 
    y: 243 
    width: 73 
    height: 20 
    value: 0 
    stepSize: 1 
    minimumValue: 0 
    decimals: 0 
    maximumValue: 99 
} 

다음과 같이 내 QML 코드입니다.

데이터를 QString에 문자열로 QVariant에 가져 오기 시도했는데 .toUInt(), .toString(), .toBitArray(), .toByteArray()를 사용하여 시도했지만 때마다 프로그램이 충돌합니다. QString의 경우 컴파일러는 QVariant 유형이라는 오류를 발생시킵니다. 심지어 접미사 %를 삭제하려고했습니다. 도와주지 않았어. 누군가가 좀 밝힐 수 있을까요? 감사!!

+0

'v_spin-> 속성 ("text"). toUInt();'; 어쩌면 당신은'-> property ("value")'를 의미할까요? 거기에 "텍스트"속성이 보이지 않습니다 ... – SingerOfTheFall

+0

예, 죄송합니다. 관련없는 코드를 삭제하고 실수로 해당 게시물을 내 게시물에서 삭제했습니다. 그것을 다시 입력하십시오 ... –

+0

'v_spin'이 유효한 포인터입니까? 당신은'0' 또는'nullptr'에 대해 확인해야합니다. – SingerOfTheFall

답변

0

해결 된 문제 - 데이터는 배정도 부동 소수점 인 "실제"qml 기본 유형입니다. 해결책은 다음과 같습니다.

double vpct = v_pct->property("value").toDouble(); 

입력하신 내용을 SingerOfTheFall에게 보내 주시면 감사하겠습니다.

관련 문제