Как лучше всего выровнять RowLayout?

Я хочу заказать два компонента Text и Image внутри Rowlayout, но единственный способ, который я нашел, - это использовать Item.
Этот способ работает правильно ... Кто-нибудь знает, как я могу заказать эти два компонента ?.

       ColumLayout{...
                RowLayout{
                Layout.fillWidth: true
                Layout.preferredHeight: 60
                Item{
                    Layout.fillHeight: true
                    Layout.fillWidth: true
                    Text {
                        id:textLoading
                        text: qsTr("Loading .")
                        font.pixelSize: sizeText
                        color: textColor
                        anchors.left: parent.left   
                    }
                }
                Item{
                    Layout.fillHeight: true
                    Layout.fillWidth: true
                    Image {
                        id:idImageSuccess
                        height: 32
                        width:32
                        source: "icons/check-circle.svg"
                        anchors.right: parent.right                           

                    }
                }...
             }



//**********************************this way doesn't work************************

не работает или я использую неправильный Layout.alignment: Qt.AlignLeft и Layout.alignment: Qt.AlignRight

      ColumnLayout{...

                RowLayout{
                    Layout.fillWidth: true
                    Layout.preferredHeight: 60
                    
                    Text {
                        id:textLoading
                        text: qsTr("Loading .")
                        font.pixelSize: sizeText
                        color: textColor
                        Layout.alignment: Qt.AlignLeft
                        
                    }
                    
                    
                    Image {
                        id:idImageSuccess
                        height: 32
                        width:32
                        source: "icons/check-circle.svg"
                        Layout.alignment: Qt.AlignRight
                        
                    }
                    
                }...
            }

1 ответ

Я думаю, что у вашего макета есть проблема в первом коде, я тестирую ваш код и использую одно изображение от себя, как вы можете видеть на этом рисунке, ваш код в дизайнере выглядит так:

Для настройки макета я обычно использую конструктор QtCreator

Попробуй это :

         ColumnLayout{
        anchors.fill: parent
        RowLayout{
            Layout.fillWidth: true
            Layout.preferredHeight: 60
            Item{
                Layout.alignment: Qt.AlignHCenter | Qt.AlignTop
                Layout.fillHeight: true
                Layout.fillWidth: true
                Text {
                    id:textLoading
                    text: qsTr("Loading .")
                    anchors.fill: parent
                    font.pixelSize: sizeText
                    color: textColor
                }
            }
            Item{
                Layout.alignment: Qt.AlignHCenter | Qt.AlignTop
                Layout.fillHeight: true
                Layout.fillWidth: true
                Image {
                    id:idImageSuccess
                    anchors.fill: parent
                    source: "icons/check-circle.svg"

                }
            }
        }

    }

Результат:

Другие вопросы по тегам