0
比方說,我有這樣的項目清單:qcombobox:使用非第一個字符鍵盤導航
"01 Apple 1",
"02 Apple 2",
"03 Banana",
"04 Orange 1",
"05 Orange 2"
有沒有一種方法,使一個QComboBox
用戶可以在其中(例如)按「O」選擇"04 Orange 1"
和「b」選擇「03香蕉」?
比方說,我有這樣的項目清單:qcombobox:使用非第一個字符鍵盤導航
"01 Apple 1",
"02 Apple 2",
"03 Banana",
"04 Orange 1",
"05 Orange 2"
有沒有一種方法,使一個QComboBox
用戶可以在其中(例如)按「O」選擇"04 Orange 1"
和「b」選擇「03香蕉」?
您可以使用事件過濾器來達到此目的。爲您的組合框安裝一個事件過濾器。如果事件類型爲QEvent::KeyPress
,找出哪個按鍵被按下,並且您是否感興趣,發出一個帶有必要信息的信號到裝有組合框的小工具/對話框/主窗口。
你可以找到一個例子here。
我看不到任何簡單的方法來做到這一點,而不會失去一些功能。例如,你是否想要保留當前按下零鍵的功能將循環選項?如果有人點擊「o」兩次,是否應該在第一次按下「04橙色1」,然後在第二次按下時按下「05橙色2」?如果有人點擊'或'你想讓它保持橙色,或忽略最初的'o'並跳轉到開始'00 r ..'的條目? 01,02等數字重要嗎?他們可以隱藏或分別繪製? – 2014-10-17 23:50:27
它應該像一個普通的QComboBox一樣工作,只不過它忽略了第一個X(在這種情況下是3)個字符,並且使用下一個字符作爲常規的第一個字符。 – rmweiss 2014-10-23 17:21:23