2008-11-21 43 views

回答

4

你是對的,這顯然應該是一個公開的API,它應該在文檔中突出顯示。沒有這樣的運氣。

  • 如果您使用的是平臺本機控件之一,則當用戶訪問文本編輯控件時,虛擬鍵盤將自動彈出。

  • 如果您正在製作自定義控件,您需要添加自己的虛擬鍵盤版本來處理它的選擇:創建一個新的文本編輯,擁有窗口的虛擬鍵盤類似於右側的自定義控件鈕釦。在所有應用程序中重複使用它。有一天,諾基亞將意識到他們犯了一個明顯的錯誤,並公開API。

  • 如果您正在使用直接屏幕訪問,那麼您不會期望看到非常符合s60的虛擬鍵盤彈出現在的位置。再次,在屏幕上繪製一個漂亮的圖像,讓用戶知道虛擬鍵的位置,並對指針事件作出反應。除非您在其中創建了大量的自定義(背景,按鈕邊緣...),否則這將不太可重用。

編輯:諾基亞可能是依靠Qt來解決這個問題。我預計控件將成爲Qt當前4.7版本的一部分。

3

修改重點放在自定義編碼的動態滾動區域內的QLineEdit,我有一個類似的問題(如何手動打開虛擬鍵盤)。然後,我發現了它,這顯然在Qt的4.6.3工作的C7的Symbian^3的手機上:

​​

在此之前,我也不得不發佈的QEvent :: focusIn事件到同一個lineedit,否則QLineEdit沒有更新虛擬鍵盤的內容。

希望這是有幫助的。我失去了幾小時。

1

謝謝tihi,非常有用的提示!還有可以觸發的「關閉虛擬鍵盤」事件:

QApplication::postEvent(lineEdit, new QEvent(QEvent::CloseSoftwareInputPanel));