2014-01-29 53 views
0

如何在某些MouseAreas中禁用鼠标点击?无法设置“SetClickable”标记

我正在使用MouseArea{ .... }里面的一些代码,并希望它们被禁用,直到它们的标志没有变成TRUE

onClicked: { 
       focus: true 
       onClicked: pageLoader.source = "PAGE3.qml"; 
      } 

程序中有多个mouseAreas。当一个鼠标区域已经被点击并且与该鼠标区域相对应的页面被加载使用加载程序时,需要禁用所有其他MouseAreas。
这些mouseAreas使用QML的Grid函数作为矩阵加载。

我怎么能这样做?

+1

根据文档http://qt-project.org/doc/qt-5.0/qtquick/qml-qtquick2-mousearea.html MouseArea没有这个属性。你在哪里得到这个名字'setClickable'?你自己发明了它吗? – Kakadu

+0

对不起,我的错误。这是在'QHeaderView类参考' – Jino

+0

@Kakadu我编辑了这个问题! – Jino

回答

0

得到了答案!您需要添加
enable: false

例子:
Grid {
enable: true }

这将使电网和;

Grid {
enable: false }

这将禁用网格!

0

这样的事情?

import QtQuick 2.1 

Rectangle { 
    width: 800 
    height: 600 
    property bool clickable 
    MouseArea { 
      anchors.fill:parent 
      onClicked: { 
        if (clickable) 
          console.log("clicked"); 
        else 
          console.log("unclickable"); 

      } 
    } 
    Component.onCompleted: clickable = true; 
} 
+0

这不禁用MouseArea,它只是打印值。让我重新编辑这个问题。 – Jino

+0

请检查我的答案,这种方法的作品! – Jino

+1

我在想,你将多个鼠标区域加载到网格中,并且想要在网格中禁用它们中的一些。整个网格不是。 ANYWAY,我很高兴你获得了预期的结果。 – Kakadu