6

アプリの UI を C++ から QML に変換しようとしています。ある段階でログイン ウィンドウが必要になるので、以下のコードを使用して QML で作成しました。

Window {
    id: loginWindow
    property string username: login.text;
    property string password: password.text;
    property bool issave: savePassword.checked;

    flags: Qt.Dialog
    modality: Qt.WindowModal
    width: 400
    height: 160
    minimumHeight: 160
    minimumWidth: 400
    title: "Login to program"

    GridLayout {
        columns: 2
        anchors.fill: parent
        anchors.margins: 10
        rowSpacing: 10
        columnSpacing: 10

        Label {
            text: "Login"
        }
        TextField {
            id: login
            text: Config.getParam("user")
            Layout.fillWidth: true
        }

        Label {
            text: "Password"
        }
        TextField {
            id: password
            text: Config.getParam("password")
            echoMode: TextInput.Password
            Layout.fillWidth: true
        }

        Label {
            text: "Save password?"
        }
        CheckBox {
            id: savePassword
        }

        Item {
            Layout.columnSpan: 2
            Layout.fillWidth: true
            Button {
                anchors.centerIn: parent
                text: "Enter"
                onClicked: {
                    loginWindow.close();
                }
            }
        }
    }
}

フォーム レイアウトとの互換性を高めるために GridLayout を使用しました。しかし、ウィンドウは期待どおりに見えません。これはスクリーンショットです:

スクリーンショット

GridLayout には 10 ピクセルの余白があり、行と列の間にも 10 ピクセルあります。

しかし、スクリーンショットでは、ボタンのある行には余白も間隔もありません。

私は何を間違っていますか?

Qt 5.3.0 デビアン 7.5 x32

4

1 に答える 1