Qt QML เอาธาตุเหนือลิ้นชัก

0

คำถาม

ฉันกำลังพยายามอย่างหนักกับเป็นขั้นพื้นฐานถามคำถาม..

ใช้ QT 5.15.2:

พวกเรามีเรียบง่ายโปรแกรมกับหน้าต่างหลักและ 2-3 รายการย่อยของหน้าต่าง(1 อยู่ในระดับลงจากหลัก). หน้าต่างหลักนั้นไม่ได้เป็นต้องใช้ของเนื้อหาการเป็นส่วนหัวและบางคนของเมนู-แผ่นๆจะถูกกระจายออกเป็นอีกฝั่งหน้าต่างหลัก. ตอนนี้ในรายการย่อยของหน้าเป็นที่เปิดอยู่กับลิ้นชักงองค์

อย่างไรก็ตามที่ลิ้นชักสิครับนี่แผนที่ครัในแผ่นและส่วนหัวครั้งนึงที่เปิดอยู่และพวกเราต้องกลั instanciate งแผ่และส่วนหัวภายในลิ้นชักจะมีมันมองเห็นได้. นี่ไม่ใช่สวยจริงๆ มันมีทางที่จะกำหนด z-ระดับที่ลิ้นชักก็คือที่เปิดอยู่? (เห็นได้ชัดว่าการตั้งค่า z ไม่ทำงาน).


Item{
  id: id_mainWindow
  z: 0
  Drawer{
    id: id_subMenu1
    anchors.fill: parent
    z: 1
    
    /* Not so nice workaround */
    Button{
      id: id_subClose
      z: 100
      onClicked{
        id_subMenu1.close()
      }
    }
  }

  /* Unfortunately, this one gets hidden once, the drawer is open */
  Button{
    id: id_subOpenClose
    z: 100
    onClicked{
      if( id_subMenu1.open ){
        id_subMenu1.close()
      } else {
        id_subMenu1.open()
      }
    }
  }

}
qml qt qt5.15
2021-11-19 07:31:58
1

คำตอบที่ดีที่สุด

0

ฉันจะแนะนำให้ว่า Drawer ไม่ใช่ตรงส่วนประกอบสำหรับงานนี้เป็นมันคือทางเทคนิคแล้วเป็น Popup. มันอาจจะคุ้มที่จะตรวจตรวจสอบสุ TabBar ส่วนประกอบแทน

ยังไงก็ตามนี่คือการเขียนของคุณรหัสดังนั้นของคุณ Drawer เปิดโดยไม่มีใบบัวมาปิดไม่มิดหรอก id_subOpenClose ปุ่ม.

import QtQuick
import QtQuick.Controls
import QtQuick.Controls.Material

Rectangle {
    id: id_mainWindow
  
    anchors.fill: parent
  
    Drawer {
        id: id_subMenu1
    
        /*
        Set the Drawer's height and y position so that it does not cover your button
        */
        y: id_subOpenClose.height
        height: id_mainWindow.height - id_subOpenClose.height
        width: id_mainWindow.width

        // Do not dim background
        dim: false
        
        // Set this to zero if you want no shadow
        Material.elevation: 2
    
        edge: Qt.RightEdge
    
        Label {
            text: 'Hello World'
            anchors.centerIn: parent
        }
    }

    /* 
    This is your header button that was getting hidden
    Here it stays as if it were part of a global header and does not get hidden by
    the Drawer.
    */
    Button{
        id: id_subOpenClose
        text: id_subMenu1.visible? 'close': 'open'
        onClicked: id_subMenu1.visible? id_subMenu1.close(): id_subMenu1.open()
    }
}

สำหรับการโต้ตอบ WASM ตัวอย่างของที่อยู่เหนือเห็น อยู่นี่.

2021-12-01 15:56:39

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่