Qml ComboBox с TextField во всплывающем окне - PullRequest
0 голосов
/ 05 ноября 2018

Я создал пользовательский ComboBox, который использует ListView с TextField в нижнем колонтитуле, который используется для динамического добавления параметров в ComboBox. Проблема в том, что как только всплывающее окно теряет фокус (например, когда TextField получает фокус), всплывающее окно закрывается. Я пытался заставить всплывающее окно оставаться открытым, что работает, но затем мешает TextField получить фокус (я думаю, потому что всплывающее окно восстанавливает фокус, как только вызывается open()).

ComboBox {
  // ...
  popup: Popup {
    property bool forceOpen: false
    onClosed: {
      if(forceOpen)
        open()
    }

    contentItem: ListView {
      // ...
      footer: TextField {
        onPressed: forceOpen = true
      }
    }
  }
}

Я также попробовал все значения для свойства closePolicy Popup, но ни одно из них не помогло.

Я использую Qt5.11 . Решение forceOpen раньше работало с Qt 5.10, но больше не работает.

1 Ответ

0 голосов
/ 06 ноября 2018

Ваша проблема должна быть исправлена, если вы не принимаете фокус на ComboBox:

ComboBox {
  focusPolicy: Qt.NoFocus
  popup: Popup {
    // ... 
  }
}
...