저는 궁금합니다. QML에서 일부 인수로 채워지는 문자열을 어떻게 가질 수 있습니까? Qt는이 같은 일부 것은 :QML에서 QString :: arg()의 동등 함은 무엇입니까
QString str("%1 %2");
str = str.arg("Number").arg(12);//str = "Number 12"
저는 궁금합니다. QML에서 일부 인수로 채워지는 문자열을 어떻게 가질 수 있습니까? Qt는이 같은 일부 것은 :QML에서 QString :: arg()의 동등 함은 무엇입니까
QString str("%1 %2");
str = str.arg("Number").arg(12);//str = "Number 12"
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
당신은 jQuery 플러그인이 작업을 수행 할 수 있습니다
http://docs.jquery.com/Plugins/Validation/jQuery.format
import "jQuery.js" as JQuery
Page {
property string labelStub: "hello {0}"
Label {
text: JQuery.validator.format(labelStub, "world")
}
}
인수는이 예제에서는 전혀 필요하지 않습니다. 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
함수는 여러 대체 인수를 사용하지만 여기서는 간단하게 여기에 썼습니다.
성능이 부족합니까? –