2017-08-06 6 views
1

動作:達成したいのは簡単です。アプリケーションを開くときにQSettingsをチェックし、私は私のメインウィンドウを開きます、さもなければ、私は認証ウィンドウを開きます。アプリケーションが自動化されているかどうかに応じて別のQMLファイルを表示

質問:考えているのはbool validToken = trueです。 qrc:/authorization.qmlにいくつかの引数を渡して、どういうふうにURLを言うのですか?もしそれが偽であれば、私のqrc:/main.qmlをいくつかの異なる引数、例えば私のプロフィールに渡すことができます。

私が試したこと: QQmlApplicationEngine::load()を使用して別のウィンドウを開きましたが、私はmain.qml以外のものをロードできませんでした。 その後、私はmain.qmlでローダーを使用していると考えていました。しかし、私はまだそれを行う方法については、非常に明確ではありません。

答えて

4

settings in QMLをお勧めします。それは完全に実行可能であり、実際にはC++でQSettingsを使用するよりはるかに簡単です。

また、2つの異なるウィンドウが必要なように、それを置く方法からは聞こえません。あなたが許可されているかどうかによって異なるものを表示するウィンドウが1つ必要です。

は、だから、このような単純なものを持つことができます。

import QtQuick 2.8 
import Qt.labs.settings 1.0 

ApplicationWindow { 
    id: main 
    visible: true 
    width: 1280 
    height: 1024 

    property bool isAuthorized: false 

    Settings { 
    property alias isAuthorized: main.isAuthorized 
    } 

    Loader { 
    source: isAuthorized ? "AppView.qml" : "Authorize.qml" 
    } 
} 

基本的には、Settings要素は、あなたが許可されている場合は、あなたのアプリは、異なるアプリケーションの実行の間で許可されているかどうかを格納するアプリのビューが表示されますあなたのアプリもしそうでなければ、認可ビューを表示します。そこでは、いくつかのデータを入力し、認可を行ういくつかのC++関数に渡し、戻り値をisAuthorizedに割り当てます。

また、仕事にQML設定を取得するためには、あなたはmain.cppにしてアプリのデータを記入する必要があります:

app.setOrganizationName("yourOrg"); 
    app.setOrganizationDomain("domain.org"); 
    app.setApplicationName("appName"); 

をBTW設定が本当にどのような方法で暗号化または難読化されないことを考えますまた、アプリケーションの外部から設定を手動で真に編集するのはかなり簡単なので、ハッシュ文字列のように少し洗練されたものを使用することもできます。単純な真偽ではなく検証を実行できますブール値。