QtQuick: создание меню из ListModel - PullRequest
0 голосов
/ 17 февраля 2020

Я новичок в форуме и начал разрабатывать несколько вещей в QtQuick. Я все еще изучаю и изучаю основы c и наткнулся на следующую проблему. Когда я пытаюсь создать меню (menubar) из ListModel, используя Listview, я просто не получаю никакого меню вообще. Может быть, у меня все еще есть неправильное понимание принципов, и вы можете мне помочь. Вот мой базовый c код:

import QtQuick 2.12
import QtQuick.Window 2.14
import QtQuick.Layouts 1.12
import QtQuick.Dialogs 1.3
import QtQuick.Controls 2.14
MenuBar{
  id: menuBarId

  ListModel{
  id: listModelMenuId
  ListElement {menuname: "Test1"}
  ListElement {menuname: "Test2"}

  }
  ListView{
  id: listViewMenuId
  model: listModelMenuId
  delegate: Menu {
          id: menu
          title: model.menuname
          Action { text: qsTr("Tool Bar"); checkable: true }
          Action { text: qsTr("Side Bar"); checkable: true; checked: true }
          Action { text: qsTr("Status Bar"); checkable: true; checked: true;}

          MenuSeparator {
              contentItem: Rectangle {
                  implicitWidth: 200
                  implicitHeight: 1
                  color: "#21be2b"
              }
          }
          Menu {
              title: qsTr("Advanced")
          }

          topPadding: 2
          bottomPadding: 2
//          delegate: mydelegateid

          background: Rectangle {
              implicitWidth: 200
              implicitHeight: 40
              color: "#ffffff"
              border.color: "#21be2b"
              radius: 2


          }
      }} }

Я получил свой образец с сайта qt и подделал его, добавив ListModel. Также интересно то, что если я хочу реорганизовать исходное кодирование, используя компонент, в который я упаковываю MenuItem и вызываю компонент, он также не работает. Может ли быть так, что меню в целом работают иначе, чем другие элементы? Если я оставлю что-то важное, просто скажи мне, я добавлю больше информации.

С наилучшими пожеланиями!

1 Ответ

0 голосов
/ 17 февраля 2020

я решил проблему. Пример для делегирования вашего стиля в панели меню

Это решило проблему в целом. Тем не менее, я до сих пор удивляюсь, почему я не могу инкапсулировать MenuItem в компонент и использовать идентификатор компонента для делегирования стиля для элементов .... С уважением, Серёга

...