Câu hỏi Loại bỏ phần tiêu đề trong ứng dụng qml trên Ubuntu SDK


Có thể loại bỏ phần tiêu đề trong MainView của một ứng dụng qml mới?

enter image description here

Mã số:

import QtQuick 2.0
import Ubuntu.Components 0.1
import "components"

/*!
    \brief MainView with a Label and Button elements.
*/


MainView {
    width: 400
    height: 400
    transformOrigin: Item.Center
    clip: false
    opacity: 1

    // objectName for functional testing purposes (autopilot-qt5)
    objectName: "mainView"

    // Note! applicationName needs to match the "name" field of the click manifest
    applicationName: "com.ubuntu.developer.username.hello1"


    Page {
        id: page1
        clip: false
        title: "Hello World"

        Column {
            id: column1
            anchors.bottomMargin: 45
            spacing: units.gu(1)
            anchors {
                margins: units.gu(2)
                fill: parent
            }

            HelloComponent {
                id: label
                height: 50
                objectName: "label"

                text: i18n.tr("Hello..")
                anchors.left: parent.left
                anchors.leftMargin: 0
                anchors.right: parent.right
                anchors.rightMargin: 0
            }

            Button {
                objectName: "button"
                width: parent.width

                text: i18n.tr("Tap me!")

                onClicked: {
                    label.text = i18n.tr("..world!") 
                }
            }
        }
    }
}

Nếu tôi xóa title: "Hello World"của phần tử Trang, tiêu đề dường như đã biến mất nhưng tiêu đề cửa sổ bình thường có tiêu đề này:

enter image description here 

Làm thế nào tôi có thể thay đổi chỉ tiêu đề này và ẩn phần tiêu đề?


2
2017-07-23 15:13


gốc




Các câu trả lời:


Như bạn đã biết, việc xóa tiêu đề ngăn tiêu đề được hiển thị. Vì vậy, điều duy nhất để sửa chữa là tiêu đề của cửa sổ gốc.

Bạn có thể làm điều này với mã sau đây (nơi tôi thay đổi window.title - sau khi nhập QtQuick.Window):

import QtQuick 2.0
import Ubuntu.Components 0.1
import QtQuick.Window 2.0

/*!
    \brief MainView with a Label and Button elements.
*/


MainView {
    width: 400
    height: 400
    transformOrigin: Item.Center
    clip: false
    opacity: 1

    // objectName for functional testing purposes (autopilot-qt5)
    objectName: "mainView"

    // Note! applicationName needs to match the "name" field of the click manifest
    applicationName: "com.ubuntu.developer.username.hello1"


    Page {
        id: page1
        clip: false
        property var my_title: "Hello World"

        // 'window' is defined by QML between startup and showing on the screen.
        // There is no signal for when it becomes available and re-declaring it is not safe.
        property bool windowActive: typeof window != 'undefined'
        onWindowActiveChanged: {
            window.title = my_title
        }

        Column {
            id: column1
            anchors.bottomMargin: 45
            spacing: units.gu(1)
            anchors {
                margins: units.gu(2)
                fill: parent
            }

            Text {
                id: label
                height: 50
                objectName: "label"

                text: i18n.tr("Hello..")
                anchors.left: parent.left
                anchors.leftMargin: 0
                anchors.right: parent.right
                anchors.rightMargin: 0
            }

            Button {
                objectName: "button"
                width: parent.width

                text: i18n.tr("Tap me!")

                onClicked: {
                    label.text = i18n.tr("..world!")
                }
            }
        }
    }
}

enter image description here


2
2017-07-23 16:42



Cảm ơn bạn! Nó cũng hoạt động nếu tôi không import QtQuick.Window 2.0. - TuKsn
Tuyệt, tôi không biết điều đó. Cảm ơn - Sylvain Pineau