2014-10-17 19 views
0

比方說,我有這樣的項目清單:qcombobox:使用非第一個字符鍵盤導航

"01 Apple 1", 
"02 Apple 2", 
"03 Banana", 
"04 Orange 1", 
"05 Orange 2" 

有沒有一種方法,使一個QComboBox用戶可以在其中(例如)按「O」選擇"04 Orange 1"和「b」選擇「03香蕉」?

+0

我看不到任何簡單的方法來做到這一點,而不會失去一些功能。例如,你是否想要保留當前按下零鍵的功能將循環選項?如果有人點擊「o」兩次,是否應該在第一次按下「04橙色1」,然後在第二次按下時按下「05橙色2」?如果有人點擊'或'你想讓它保持橙色,或忽略最初的'o'並跳轉到開始'00 r ..'的條目? 01,02等數字重要嗎?他們可以隱藏或分別繪製? – 2014-10-17 23:50:27

+0

它應該像一個普通的QComboBox一樣工作,只不過它忽略了第一個X(在這種情況下是3)個字符,並且使用下一個字符作爲常規的第一個字符。 – rmweiss 2014-10-23 17:21:23

回答

0

您可以使用事件過濾器來達到此目的。爲您的組合框安裝一個事件過濾器。如果事件類型爲QEvent::KeyPress,找出哪個按鍵被按下,並且您是否感興趣,發出一個帶有必要信息的信號到裝有組合框的小工具/對話框/主窗口。

你可以找到一個例子here