Почему моя страница SwipeView не изменяется при изменении вкладки в панели вкладок в QML? - PullRequest
0 голосов
/ 03 ноября 2019

Итак, я пытаюсь создать традиционный внешний вид для моего приложения QML, которое просто состоит из TabBar и SwipeView. Есть также еще один компонент, который сводится к нажатию кнопки, что должно привести к появлению новой вкладки в TabBar и новой страницы в SwipeView. Это работает, за исключением того, что когда я нажимаю на предыдущую вкладку (есть статическая вкладка и страница при запуске приложения), страница в представлении не изменяется.

Вот мой файл QML -

import QtQuick 2.12
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.12
import QtQuick.Controls 2.13

ColumnLayout {
    Layout.fillHeight: true
    Layout.fillWidth: true
    Component {
        id: tabButton
        TabButton {
            width: implicitWidth
        }
    }
    Component {
        id: resultListView
        Rectangle {
            anchors.fill: parent
            color: "green"
        }
    }
    SwipeView {
        id: tabBarLayout
        Layout.fillHeight: true
        Layout.fillWidth: true
        interactive: false
        currentIndex: 0
        LogArea {
            id: logArea
        }
    }
    TabBar {
        id: tabBar
        currentIndex: tabBarLayout.currentIndex
        Layout.fillWidth: true
        font.capitalization: Font.MixedCase
        TabButton {
            text: qsTr("log")
            width: implicitWidth
        }

        Connections {
            target: qmlBridge
            onLoadResultTab: {
                tabBar.addItem(tabButton.createObject(tabBar, {text: qsTr("search - " + term)}))
                tabBarLayout.addItem(resultListView.createObject())
                tabBarLayout.incrementCurrentIndex()
                console.log("Added new item...")
            }
        }
    }
}

Сигнал onLoadResultTab вызывается при нажатии кнопки. Как видите, я добавляю новый TabButton и увеличиваю текущий индекс, а затем создаю еще один компонент, который на данный момент является простым Rectangle. Теперь, когда я нажимаю кнопку «Журнал», SwipeView не меняет свою страницу на страницу, соответствующую вкладке журнала. Кто-нибудь может указать, в чем здесь проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...