2016-07-22 23 views
1

QtQuick GUI (as in here I believe)에 팝업 메뉴를 추가하고 예상 한대로 작동하지 않습니다.QtQuick 팝업 메뉴가 예상대로 작동하지 않습니다.

import QtQuick 2.7 
import QtQuick.Layouts 1.3 
import QtQuick.Window 2.2 
import QtQuick.Controls 2.0 
import QtQuick.Controls.Styles 1.2 

ApplicationWindow 
{ 
    ... 

    // File menu button. 
    Rectangle 
    { 
     id: ribbonFileMenuButton 
     anchors.right: parent.right 
     anchors.verticalCenter: parent.verticalCenter 
     width: height 
     height: parent.height 
     scale: ribbonFileMenuButtonMA.pressed ? 1.3 : 1 
     color: "transparent" 

     // Icon. 
     RibbonFileButtonIcon 
     { 
      id: ribbonFileMenuButtonIcon 
      anchors.fill: parent 
     } 

     // Behavior. 
     MouseArea 
     { 
      id: ribbonFileMenuButtonMA 
      anchors.fill: parent 
      onClicked: menu.open() /*popup()*/ 
     } 
    } 
    ... 

    // File. 
    Menu 
    { 
     id: menu 
     y: 20 

     MenuItem 
     { 
      text: "New..." 
     } 
     MenuItem 
     { 
      text: "Open..." 
     } 
//  MenuSeparator { } 
     MenuItem 
     { 
      text: "Save" 
     } 
    } 

... 
} 

먼저, I는 menu.open()하지 menu.popup() 상기에 표시된 문서에 기재된이 (제공된 전화있다 : 여기서

내가 할 무엇 링크) menu.popup() 출력 오류 :

형식 오류가

: 오브젝트 QQuickMenu (0x20f40f0의 속성 "팝업")하지 함수

그런 다음 나는 다음과 같은 오류가, MenuSeparator {}의 주석을 해제하는 경우 :

MenuSeparator 제공된 링크에서 문서에 따르면, 다시없는 유형

, 그것은 작동합니다.

나는 인터넷을 통해 보았다,하지만 난 조금 손실입니다 ...

감사합니다,

앙투안.

+2

"import QtQuick.Controls 1.3"에서 MenuSeparator를 사용할 수 있는지 확인하십시오. – ManuelH

+0

흠 ...이 회귀는 두 가지 질문에 모두 답합니다. 이상하게 보입니다 ... QtQuick.Controls 2.0은 완전히 끝나지 않은 완전한 재 작성입니다 ... 맞습니까? – arennuit

+1

확실하게 말할 수는 없지만 사용중인 정확한 QT 버전을 언급하면 ​​도움이됩니다. 저는 현재 5.4 버전을 사용하고 있습니다. 그리고 거기에있는 문서는 분명히 "MenuSeparator"가 QT 버전과 QtQuick.Controls 1.3 버전에서 사용 가능하다고 말했습니다. 만약 당신이 나보다 새로운 QT 버전을 사용하고 있다면 QT 버전간에 해당 API가 변경되었을 가능성이 매우 높습니다. – ManuelH

답변

2

@ManuelH는 Qt Quick Controls 2 ... yet에서는 MenuSeparator을 사용할 수 없다고 말했습니다. :)

2.0 버전은 실제로 새로운 API를 제공하는 완전한 재 작성입니다. 동일한 유형이 많이 있지만 Qt Quick Controls 1.x의 API 또는 동작에 의존하지 않으려면 문서를 자세히 읽어야합니다.

주요 호환성 버전 (예 : QtQuick 1.0에서 QtQuick 2.0, Qt 4에서 Qt 5 등)에 대한 소스 호환성 중단이 허용됩니다 (최소로 유지하려고 시도하지만).

두 API 간의 차이점에 대한 자세한 내용은 this 페이지를 참조하십시오.이 링크는 링크 된 blog post입니다.

+0

굉장, 고마워요 @ 미치! – arennuit

관련 문제