簡體   English   中英

如何在qml中自定義標題欄?

[英]How to customize title bar in qml?

我需要自定義我的應用程序的標題欄,例如在“Appstore”中: 在此輸入圖像描述

我怎么能在qt中這樣做?

我已經嘗試將FrameWindow標志設置為FramelessWindowHint,但我必須實現所有功能(調整大小,拖動等)。 有什么好的解決方案嗎?

你的答案在這里:欲了解更多信息,請訪問鏈接: Snap2Chat自定義QML標題欄

TitleBar.qml示例文件

import bb.cascades 1.0

TitleBar 
{
    appearance: TitleBarAppearance.Plain
    kind: TitleBarKind.FreeForm

    property string titleText                   : "Snap2Chat";
    property variant titleTextColor             : Color.White
    property variant titleBarBackgroundColor    : Color.White
    property variant titleTextFontSize          : FontSize.Large
    property variant titleTextFontWeight        : FontWeight.W100

    property bool imageLogoVisibility           : false;
    property bool textLogoVisibility            : true;
    property bool cameraVisibility              : false;
    property bool closeVisibility               : false;
    property bool settingsVisibility            : false;

    signal closeButtonClicked();
    signal settingsButtonClicked();
    signal cameraButtonClicked();
    signal titleBarClicked();

    kindProperties: FreeFormTitleBarKindProperties 
    {
        content: 
        Container 
        {
            layout: DockLayout {}
            id: titleBackground
            background: titleBarBackgroundColor 
            horizontalAlignment: HorizontalAlignment.Fill

            Container 
            {
                layout: DockLayout {}
                horizontalAlignment: HorizontalAlignment.Fill
                verticalAlignment: VerticalAlignment.Fill
                leftPadding: 20
                rightPadding: leftPadding

                Container 
                {
                    id: leftButtons
                    horizontalAlignment: HorizontalAlignment.Left   
                    verticalAlignment: VerticalAlignment.Center

                    ImageButton 
                    {
                        id: closeButton
                        visible: closeVisibility
                        preferredHeight: 70
                        preferredWidth: 70
                        defaultImageSource: "asset:///images/titlebar/close.png"
                        onClicked: 
                        {
                            closeButtonClicked();
                        }
                    }

                    ImageButton 
                    {
                        id: cameraButton
                        visible: cameraVisibility
                        preferredHeight: 70
                        preferredWidth: 70
                        defaultImageSource: "asset:///images/titlebar/camera.png"
                        onClicked: 
                        {
                            cameraButtonClicked();
                        }
                    }
                }

                Container 
                {
                    id: centerButtons
                    verticalAlignment: VerticalAlignment.Center
                    horizontalAlignment: HorizontalAlignment.Center

                    ImageView 
                    {
                        visible: imageLogoVisibility
                        verticalAlignment: VerticalAlignment.Center
                        imageSource: "asset:///images/titlebar/logo.png"
                        preferredHeight: 70
                        scalingMethod: ScalingMethod.AspectFit
                    }

                    Label 
                    {
                        visible: textLogoVisibility
                        text: titleText
                        textStyle.color: titleTextColor
                        textStyle.fontSize: titleTextFontSize
                        textStyle.fontWeight: titleTextFontWeight
                    }

                    gestureHandlers: TapHandler 
                    {
                        onTapped: 
                        {
                            titleBarClicked();
                        }    
                    }
                }

                Container 
                {
                    id: rightButtons
                    horizontalAlignment: HorizontalAlignment.Right
                    verticalAlignment: VerticalAlignment.Center

                    ImageButton 
                    {
                        visible: settingsVisibility
                        preferredHeight: 70
                        preferredWidth: 70
                        defaultImageSource: "asset:///images/titlebar/settings.png"
                        onClicked: 
                        {
                            settingsButtonClicked();
                        }
                    }
                }
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM