2016-06-27 122 views
1

我想要在使用時禁用拖動我的列表視圖,同時移動光標並按住鼠標按鈕。我正在嘗試使用此命令來實現一些其他功能,例如多選。我只想要啓用滾動。 可滑動的屬性完全禁用了視圖的移動。有沒有解決方法?通過在移動光標時按住鼠標按鈕禁用拖動視圖

+0

把'MouseArea'放在'Flickable'上面,然後把所有想要的交互處理回到'Flickable'本身。剩下的可以根據需要進行處理。應該管用。 – maxik

+0

'flickableDirection:...'? –

回答

1

我想有一些方法可以實現你所需要的,但是下面的解決方案是有效的。

的想法是具有MouseArea並且信號onPressedonClicked發射時interactive屬性設置爲false。應在0​​處理程序中再次將interactive設置爲true

import QtQuick 2.5 
import QtQuick.Window 2.2 
import QtQuick.Controls 1.4 

Window { 
    visible: true 
    width: 640 
    height: 480 
    title: qsTr("Hello World") 

    ListModel { 
     id: listModel 
     ListElement { 
      name: "ttt" 
      number: "111" 
     } 
     ListElement { 
      name: "rrr" 
      number: "222" 
     } 
     ListElement { 
      name: "sss" 
      number: "333" 
     } 
     ListElement { 
      name: "xxx" 
      number: "444" 
     } 
     ListElement { 
      name: "yyy" 
      number: "555" 
     } 
     ListElement { 
      name: "zzz" 
      number: "666" 
     } 
     ListElement { 
      name: "aaa" 
      number: "777" 
     } 
     ListElement { 
      name: "bbb" 
      number: "888" 
     } 
     ListElement { 
      name: "ccc" 
      number: "999" 
     } 
     ListElement { 
      name: "ddd" 
      number: "011" 
     } 
     ListElement { 
      name: "eee" 
      number: "022" 
     } 
     ListElement { 
      name: "fff" 
      number: "033" 
     } 
    } 

    ListView { 
     id: myList 
     width: 180; height: 100 
     clip: true 

     Component { 
      id: contactsDelegate 
      Rectangle { 
       id: wrapper 
       width: 180 
       height: contactInfo.height 
       color: "lightblue" 

       Text { 
        id: contactInfo 
        text: name + ": " + number 
        color: "black" 
       } 

       MouseArea { 
        anchors.fill: parent 
        onPressed: { 
         myList.interactive = false 
         console.debug("onPressed") 
        } 

        onClicked: { 
         myList.interactive = false 
         console.debug("onClicked") 
        } 

        onReleased: { 
         myList.interactive = true 
         console.debug("onReleased") 
        } 
       } 
      } 
     } 

     model: listModel 
     delegate: contactsDelegate 
     focus: true 
    } 
} 
+0

當我點擊鼠標按鈕時,這也會禁用鼠標滾動。我需要在按下鼠標按鈕時啓用滾動功能......有沒有解決方法? – Vishwas

+0

用'myList.flickableDirection = Flickable.VerticalFlick'替換'myList.interactive = false'。我希望它符合你的要求。 – Tarod

相關問題