2015-09-06 4 views
2

Я создаю диалог в QML. У меня есть TextField, но мне бы хотелось, если пользователь нажмет введите (accepted сигнал испускается), нажата кнопка id: okButton, фактически активизируя его визуально на мгновение.Как программно нажать кнопку QML?

Я вижу, что имущество pressed является только для чтения.

Спасибо!

ответ

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

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