listview не отображается в TabGroup QML? - PullRequest
1 голос
/ 07 марта 2012

Как сделать так, чтобы представление списка в QML отображалось на вкладке. Я использую код в приложении для N9 (Meego), но теперь мне нужно использовать его в Symbian. Я сделал некоторые изменения, когда я преобразовал его из meego в symbian, но список не отображается. любая помощь, пожалуйста. Примечание: тот же список отображается, когда я не использую вкладки !!!

мой код:

import QtQuick 1.1
import com.nokia.symbian 1.1
import com.nokia.extras 1.1
import "UIConstants.js" as UiConstants

Page {
  id: mainpage

       orientationLock: PageOrientation.LockPortrait



    tools:
    TabBar {
           // platformStyle: TabButtonStyle { }
            TabButton {
           text: "Tab 1"
                tab: tab1

            }
            TabButton {
                text: "Tab 2"

                tab: tab2

            }
            TabButton {
                text: "Tab 3"
                tab: tab3

            }
            TabButton {
               text: "Tab 4"
                tab: tab4

            }
                       }



    TabGroup {
             id: tabGroup

             PageStack {
                id: tab1
                Component.onCompleted: tab1.push(listPage)

             // define the content for tab 1
             Page {
                 id: listPage


                   Item {
                             id: testList
                            anchors.fill: parent

                              function openFile(file) {
                                 var component = Qt.createComponent(file)

                                 if (component.status == Component.Ready) {
                                     mainWindow.pageStack.push(component);
                                     console.log("Loading component okay");
                                 }
                                 else {
              console.log("Error loading component:", component.errorString());
                                 }
                             }

                             ListModel {
                                 id: pagesModel

                                 ListElement {
                                     page: "InfoBannerPage.qml"
                                     title: "InfoBanner"
                                     subtitle: "Info Banner"
                                 }

                                 ListElement {
                                     page: "RatingIndicator.qml"
                                     title: "RatingIndicator"
                                     subtitle: "Indicates ratings"
                                 }

                             }

                             ListView {
                                 id: list
                                 model: pagesModel
                                 anchors.fill: parent

                                 delegate: ListItem {
                                     id: listItem

                                     platformInverted: mainWindow.childrenInverted

                                     Row {
                                         id: listItemRow


                                         Column {

                                             ListItemText {
                                                 id: mainText
                                               //  width: listItemRow.width
                                                 role: "Title"
                                                 text: title

                                             }

                                             ListItemText {
                                                 id: subText
                                             //   width: listItemRow.width
                                                 role: "SubTitle"
                                                 text: subtitle
                                                 visible: text != ""

                                             }
                                         }
                                     }

                                     onClicked: { testList.openFile(page); }
                                 } // listItem
                             } // listView

                             ScrollDecorator {
                                 flickableItem: listPage
                                 platformInverted: mainWindow.childrenInverted
                             }
                         } // item
                     } // page
   }



             Page {
                 id: tab2

             }
             Page {
                 id: tab3

             }
             Page {
            id: tab4

        }

    }

}

1 Ответ

0 голосов
/ 07 марта 2012

У вас проблемы с компоновкой.

Рабочая:

import QtQuick 1.1
import com.nokia.symbian 1.1
import com.nokia.extras 1.1

Page {
  id: mainpage

       orientationLock: PageOrientation.LockPortrait



//    tools:
    TabBar {
        id: tabBar
        anchors {top: parent.top }
           // platformStyle: TabButtonStyle { }
            TabButton {
           text: "Tab 1"
                tab: tab1

            }
            TabButton {
                text: "Tab 2"

                tab: tab2

            }
            TabButton {
                text: "Tab 3"
                tab: tab3

            }
            TabButton {
               text: "Tab 4"
                tab: tab4

            }
                       }



    TabGroup {
             id: tabGroup
             anchors {top: tabBar.bottom; bottom: parent.bottom}

             PageStack {
                id: tab1
                Component.onCompleted: tab1.push(listPage)

             // define the content for tab 1
             Page {
                 id: listPage
                 anchors.fill: parent


                   Item {
                             id: testList
                            anchors.fill: parent

                              function openFile(file) {
                                 var component = Qt.createComponent(file)

                                 if (component.status == Component.Ready) {
                                     mainWindow.pageStack.push(component);
                                     console.log("Loading component okay");
                                 }
                                 else {
              console.log("Error loading component:", component.errorString());
                                 }
                             }

                             ListModel {
                                 id: pagesModel

                                 ListElement {
                                     page: "InfoBannerPage.qml"
                                     title: "InfoBanner"
                                     subtitle: "Info Banner"
                                 }

                                 ListElement {
                                     page: "RatingIndicator.qml"
                                     title: "RatingIndicator"
                                     subtitle: "Indicates ratings"
                                 }

                             }

                             ListView {
                                 id: list
                                 model: pagesModel
                                 anchors.fill: parent

                                 delegate: ListItem {
                                     id: listItem

//                                     platformInverted: mainWindow.childrenInverted

                                     Row {
                                         id: listItemRow
                                         anchors.fill: listItem.paddingItem


                                         Column {

                                             ListItemText {
                                                 id: mainText
                                               //  width: listItemRow.width
                                                 role: "Title"
                                                 text: title

                                             }

                                             ListItemText {
                                                 id: subText
                                             //   width: listItemRow.width
                                                 role: "SubTitle"
                                                 text: subtitle
                                                 visible: text != ""

                                             }
                                         }
                                     }

                                     onClicked: { testList.openFile(page); }
                                 } // listItem
                             } // listView

                             ScrollDecorator {
//                                 flickableItem: listPage
//                                 platformInverted: mainWindow.childrenInverted
                             }
                         } // item
                     } // page
   }



             Page {
                 id: tab2

             }
             Page {
                 id: tab3

             }
             Page {
            id: tab4

        }

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