2015-09-06 83 views
2

我正在QML中建立一個對話框。我有一些TextField,但我希望如果用戶按輸入accepted信號發出),id: okButton被按下,實際上激活它視覺片刻。我發現pressed屬性是隻讀的。如何以編程方式按QML按鈕?

謝謝!

回答

2

你可以把它checkable一小段時間,而你模擬與checked屬性點擊:

import QtQuick 2.4 
import QtQuick.Controls 1.3 
import QtQuick.Window 2.2 
import QtQuick.Dialogs 1.2 

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

    Timer { 
     id: timer 
     running: true 
     repeat: true 
     interval: 100 
     onTriggered: { 
      button.checked = false; 
      button.checkable = false; 
     } 
    } 

    Row { 
     TextField { 
      anchors.verticalCenter: parent.verticalCenter 

      onAccepted: { 
       button.checkable = true; 
       button.checked = true; 
       timer.start(); 
      } 
     } 

     Button { 
      id: button 
      text: "Submit" 
      anchors.verticalCenter: parent.verticalCenter 
     } 
    } 
} 

從文檔爲accepted()信號TextField

這個信號被髮射當按下Return或Enter鍵時。

+0

Excelllent,謝謝! –

6

您也可以叫點擊()信號模擬按下按鈕:

Keys.onReturnPressed: { 
    clicked() 
    event.accepted = true 
} 
+0

這應該是正確的答案。 – max0r

相關問題