2013-04-01 37 views
1

我有一個QLineEdit,我想隱藏的用戶,但仍然採取輸入形式的地方。我正在創建一個打字導師,我想以隱藏的方式進行輸入,以便提供更加動態的反饋形式。如何在Qt LineEdit上使用.hide,仍然需要輸入?

任何其他建議,以最大限度地實現將不勝感激

+0

我不認爲這是可能的。小部件僅在可見時纔有焦點。也許你可以重寫'keyPress'受保護的函數來模擬你想要的東西,在小部件上顯示給用戶。 – Synxis

+0

在這種情況下,您需要實現並使用QWidget :: keyPressEvent和keyReleaseEvent虛擬函數,而不是輸入控制行QLineEdit。 – darron

回答

1

你不能做到這一點。當隱藏QLineEdit時,不會關注它,並且您無法抓取事件。

如果您堅持使用QLineEdit,則可以選擇關閉顯示文本。 QLineEdit::NoEcho

lineEdit->setEchoMode(QLineEdit::NoEcho); 

這將顯示編輯框,但它不顯示任何文本。

否則,你應該寫一個插槽來抓取信號窗口keyPressed,並自己處理所有事情。

0

對於誰試圖做這樣的事情其他人,一個解決方法是僅僅實現可見QLineEdit的,而是用=的minimumSize = MAXIMUMSIZE爲0x0 :)

+0

請詳細說明您的答案... – Rajesh

+0

如果您希望QLineEdit不可見,但要捕獲鍵盤事件,則可以創建一個大小爲0 x 0的QLineEdit,並將焦點置於「可見」爲了抓住鍵盤事件。 – YaGa

相關問題