pysidemeego-harmattan

Double status bar with PySide and QML on Nokia N9 harmattan


I'm trying to use PySide with QML on Nokia N9, and for some reason, my test app looks unlike the native N9 apps. For example, here I get a double status bar (they both react to tapping).

Double status bar

Here's the code for this:

main.py

import sys

from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtDeclarative import *

app = QApplication(sys.argv)
view = QDeclarativeView()
view.setResizeMode(QDeclarativeView.SizeViewToRootObject)
view.setSource('main.qml')
view.window().show()
app.exec_()

And the QML files:

main.qml

import QtQuick 1.1
import com.nokia.meego 1.1 

PageStackWindow {
  Component.onCompleted: {
    var pageComponent = Qt.createComponent("PageX.qml")
    pageStack.push(pageComponent)
  }
}

PageX.qml

import QtQuick 1.1
import com.nokia.meego 1.1

Page {
  id: pageOne
  Text {
    text: "Hello, this is page one"
  }
}

The file main.qml creates a PageStackWindow, and I suspect it's the ...Window part that makes the phone render the status bar again, like it tries to add a status bar to each window created (and here, maybe we have a window inside a window?). Also, there's a space between the window and the toolbar. Can someone point to the right way of doing this? I just want to use normal Pages inside a PageStack.


Solution

  • You can try "showStatusBar : false". I tryed your example on Qt Simulator, and it works without statusbar. I had a Meego - QML - PySide application, QML app worked without statusbar on Qt Simulator. But When I tryed it on android with Necessitas, I got same problem. After I use "showStatusBar : false" problem solved. Thank you, It is first time I ran my QML-Meego application on android after I saw your question :)

    PageStackWindow {
      showStatusBar : false
      Component.onCompleted: {
        var pageComponent = Qt.createComponent("PageX.qml")
        pageStack.push(pageComponent)
      }
    }