精品国产一区在线_av无码中文字幕无码王_天海翼三点刺激高潮不停_好硬好大好爽视频_欧美高清一区三区在线专区_香蕉黄色片

Slint 組件的幾何屬性和布局屬性

Slint 的所有組件都可顯式指定或通過布局約束關系來渲染組件。

幾何屬性

  • 位置屬性: 位置屬性名為xy,通??娠@示指定其值,也可通過表達式計算動態值, 其值為相對父組件的位置,而非相對屏幕的絕對位置。
  • 大小屬性: 大小屬性可由多個屬性指定或限制
    • width,height
    • preferred-width,preferred-height:用于指定優先渲染的大小,最終效果可能不為次值。
    • min-width,min-height,max-width,max-height:用于限制最大和最小適應范圍

集合屬性可由兩種單位表示:

  • 物理像素: 使用phx作為值的后綴,推薦使用
  • 邏輯像素: 使用px作為值的后綴

對于大小的屬性指定,可直接使用值來指定,也可使用X%表示該屬性為父屬性的占比。如 width: 50%表示寬度為父節點寬度的一半。示例如下:

export component Example inherits Window {
    width: 800px;
    height: 480px;
    background: blue;
    Rectangle {
        x: 100px;
        y: 10px;
        width: parent.width/2;
        height: 80%;
        background: red;
        Rectangle {
            x: root.x + 100px;
            y: root.y + 100px;
            width: 100px;
            height: 100px;
            background: green;
        }
    }
}

image.png?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg==,t_20

布局類組件

通常對于控件節點較多的界面,如果指定所有組件的位置和大小,則相對繁瑣,且不便于修改。在設計中通常根據 GUI 的層級關系和對齊關系,可使用自動布局的屬性,根據 Layout 的特性,讓渲染器自動計算出合適的位置和大小。Slint 支持三種基本的布局組件來自動約束節點的位置和大小。

  • VerticalLayout: 豎直方向依次布局子組件
  • HorizontalLayout: 水平方向依次布局子組件
  • GridLayout: 網格方式依次布局子組件.

測試代碼如下:

import { HorizontalBox } from "std-widgets.slint";
export component Example inherits Window {
    width: 800px;
    height: 480px;

    background: green;

    HorizontalLayout {
        VerticalLayout {
            horizontal-stretch: 2;
            spacing: 10px;
            Rectangle {
                background: red;
            }
            Rectangle {
                background: yellow;
            }
        }
        VerticalLayout {
            Rectangle { 
                background: blue;
            }
            Rectangle {
                background: blueviolet;
            }
            Rectangle {
                GridLayout {
                    Rectangle {
                        background: gold;
                    }
                    Rectangle {
                        background: gainsboro;
                    }
                    Rectangle { 
                        row: 2;
                        background: goldenrod;
                    }
                    Rectangle { 
                        row: 2;
                        col: 2;
                        background: royalblue;
                    }
                }
            }
        }
    }
}

各組件有其他屬性可指定大小和起始位置的計算規則,如

  • spacing: 指定子組件之間的間隔
  • padding:指定子組件相隔父組件邊框的間隔
  • alignment:指定子組件的對齊方式

例子如下:

import { HorizontalBox } from "std-widgets.slint";
export component Example inherits Window {
    width: 800px;
    height: 480px;
    background: green;
    HorizontalLayout {
        VerticalLayout {
            spacing: 10px;
            padding: 10px;
            
            Rectangle {
                background: red;
            }
            Rectangle {
                background: yellow;
            }
        }
        VerticalLayout {
            alignment: LayoutAlignment.center;
            Rectangle { 
                background: blue;
                height: 30%;
            }
            Rectangle {
                height: 40%;
                background: blueviolet;
            }
        }
    }
}

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 3
關注 15
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 亚洲国产精品一区二区成人片 | 92国产精品午夜福利无毒不卡 | 午夜精品视频在线观看 | 熟睡人妻被讨厌的公侵犯深田咏美 | 国产精品国产精品国产专区不卡 | 亚洲v天堂v手机在线 | 精品国产不卡在线观看免费 | 粉嫩av淫片一区二区三区 | 视频免费网站在线观看 | 内射人妻无套中出无码 | 亚洲乱码久久久 | 九一免费看 | 五月婷婷中文网 | 欧美97久久人人模人人爽人人喊 | 厨房里的激战2免费观看 | 北条麻妃在线免费观看 | 中文字幕日韩高清在线 | 免费a级毛片无码免费视频120软件 | 精选的2019中文字幕视频 | 国产精品magnet | 99久久婷婷国产综合亚洲 | 国产免费无码AV片在线观看不卡 | 久久久久久久性潮 | 91国偷自产一区二区三区偷拍 | 国产精品自拍啪啪 | 国产精品高潮久久久久久无码 | tube日本free | 亚洲最大成人网4388xx | 欧美色伊人 | 国产又粗又猛又大爽老大爷视频一 | 久久青青草原国产精品最新片 | 久久精品国产免费一区二区三区 | A毛片毛片看免费 | 女同互忝互慰dv毛片观看 | 天天色综合6 | 粉嫩少妇内射浓精VIDEOS | 国产精品91一区二区三区 | 伊人成人影视 | 免费的大尺度在线观看网站 | 亚洲免费在线播放 | 免费播放的av无码 |