내가 Qt는 응용 프로그램, QML 윈도우와 사용자 정의 클래스, 그이 qmlRegisterType()
에 등록되어 있고, 이것은 기본적으로 내 main
입니다 :액세스 명령 줄 인수
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
qmlRegisterType<MyType>(...);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/MyType.qml")));
}
나는 변화 것이 중요한 명령 줄 옵션이 있습니다 내가 QML을 통해 명령 줄 인수를 액세스하려는 이유 MyType
의 생성자는, 나는 조금 연구되고 지금까지 두 가지 방법을 참조 : 누구의 사양 Qt는 5했다 때까지 Qt는 문서의 존재
- 신비로운
Qt.Application.arguments
, 되었습니다 r 선거. Link. 내 qml 파일에서Application.arguments
에 액세스 할 수 있지만 그 다음에 할 일은 무엇입니까? QML 엔진이 정의되지 않은 유형이라고 말합니다. 목록처럼 액세스 할 수 없습니다. 이자형.Application.arguments[0]
은 오류TypeError: Cannot read property '0' of undefined
을 제공합니다. QCommandLineParser
으로 명령 줄 인수를 가져오고qmlRegisterType()
으로 등록 된 내 사용자 지정 클래스로 전달합니다. 내가 이해하는 한,MyType
의 생성자는 QML 엔진 자체에 의해 호출됩니다. 어떻게 인수를 전달할 수 있습니까?
'Qt.application.arguments [index]'는'Application.arguments'가 아닌 인자를 호출하는 올바른 방법입니다. 'Component.onCompleted : console.info ("실행 파일 :"+ Qt.application.arguments [0])'는 완벽하게 작동합니다. 당신은 옵션 1에 갈 수 없다는 것을 감안할 때? 옵션 2는 실용적 일 수 있지만 어 기지 않아야합니다. – BaCaRoZzo
당신이 맞습니다, args는'Qt.application.arguments [index]'를 통해 접근 할 수 있습니다, 나는 문서의 부족 때문에 그것을 얻을 수 없었습니다. Qt Creator는 또한'arguments'를 자동 완성하지 않습니다. – Asalle