2015-04-16 5 views
1

Я создал приложение QML под Mac, но я не знаю, что произойдет, когда я нажму на меню.Как обрабатывать интегрированный Mac О пункте MenuBar в Qt QML?

В http://doc.qt.io/qt-5/qmenubar.html мы найдем что-нибудь о QMenuBar на OS X. Но каков соответствующий метод QML?

В настоящее время мой код:

Menu { 
    title: qsTr("&File") 
    MenuItem { 
     text: qsTr("&Open") 
     onTriggered: messageDialog.show(qsTr("Open action triggered")) 
    } 
    MenuItem { 
     text: "about.*" 
     onTriggered: console.debug("FDF") 
    } 
    MenuItem { 
     text: qsTr("E&xit") 
     onTriggered: Qt.quit() 
    } 
} 

Когда я исполняю, это меню только показывает Open и О и Выход правильно интегрированы в меню макинтош. Выход хороший, но когда я нажимаю около, он просто уходит нормально.

Итак, как мы справляемся с этим?

+0

Это довольно странно. Это отлично работает для меня. Какая версия OSX/Qt? – BaCaRoZzo

+0

@BaCaRoZzo Благодарим вас за подтверждение. Я создал новый проект, используя мой код выше, и он отлично работает. И позже я нашел улов. – strongwillow

ответ

2

Я нашел проблему. Мой код, как это,

menuBar: MenuBar { 

    Menu { 
     title: qsTr("&File") 
     MenuItem { 
      text: qsTr("&Open") 
      onTriggered: messageDialog.show(qsTr("Open action triggered")) 
     } 

     MenuItem { 
      text: "about.*" 
      onTriggered: console.debug("FDF") 
     } 

     MenuItem { 
      text: qsTr("E&xit") 
      onTriggered: Qt.quit() 
     } 
    } 

    Menu { 
     title: qsTr("&Help") 
     MenuItem { 
      text: qsTr("&Help") 
      onTriggered: messageDialog.show(qsTr("Open action triggered")) 
     } 
     MenuItem { 
      text: qsTr("&About") 
      onTriggered: Qt.quit() 
     } 
    } 
} 

Есть два about пунктов меню, а последний перекрывает предыдущий.

+0

Я вижу. Приятно слышать, что вы нашли свою проблему. :) – BaCaRoZzo

 Смежные вопросы

  • Нет связанных вопросов^_^