2012-10-06 4 views

답변

22

QML 환경에서 arg() 함수는 이미 문자열 프로토 타입에 추가되었으므로 기본적으로 string.arg()를 다음과 같이 사용할 수 있습니다. C++과 같은 QML.

이 이것에 대해 적은 문서입니다,하지만 난 그게 4.7 + QtQuick 1.1

걸릴 Qt는 5 문서에서보기에 Qt를 작동 확신 : http://qt-project.org/doc/qt-5.0/qtqml/qml-string.html

+0

성능이 부족합니까? –

1

인수는이 예제에서는 전혀 필요하지 않습니다. JS에서, 우리는 또한 사이에 숫자를 지원하는 단순한 문자열 연결을 가지고, 그래서 당신은 당신이 정말로 비 리터럴 문자열의 인수를 원하는 경우 간단한

var str = 'Number' + ' ' + 12 

이것을 달성 할 수있다, 당신은 교체로 %1을 대체 할 수 . QString::arg는 (하나 개의 인수로)에 불과하다 다음

function stringArg(str, arg) 
{ 
    for(var i = 1; i <= 9; ++i) 
     if(str.indexOf('%'+i) !== -1) 
      return str.replace('%'+i, arg); 
    return str; 
} 

그래서 코드가됩니다 : QString::arg가 처리 할 수있는 동안

var str = "%1 %2" 
str = stringArg(str, "Number") 
str = stringArg(str, 12) 

(이 기능은 %1 .. %9를 처리 할 수 ​​있습니다 %99으로 변경하십시오. %10은 코드에 %1으로 표시되어 있기 때문에 좀 더 로직이 필요합니다. 따라서 정확히 QString::arg과 같지는 않지만 대부분의 경우 충분합니다. stringArg 함수는 여러 대체 인수를 사용하지만 여기서는 간단하게 여기에 썼습니다.

13

은 사용

"foo%1".arg("bar"); 
+0

환상적! :). 고마워 – saeed