【问题标题】:qcombobox: use non-first character for keyboard navigationqcombobox:使用非第一个字符进行键盘导航
【发布时间】:2014-12-12 22:53:03
【问题描述】:

假设我有一个项目列表,例如:

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

有没有办法制作QComboBox,用户可以(例如)按“o”选择"04 Orange 1",按“b”选择“03 Banana”?

【问题讨论】:

  • 我看不到任何简单的方法来做到这一点而不会失去一些功能。例如,您是否想保留当前按零键循环选项的功能?如果有人按两次o,是否应该在第一次按下时转到“04 橙色 1”,然后在第二次按下时转到“05 橙色 2”?如果有人点击“或”,您希望它保持橙色,还是忽略最初的“o”并跳转到以“00 r..”开头的条目? 01、02等数字重要吗?可以单独隐藏或绘制吗?
  • 它应该像普通的 QComboBox 一样工作,只是它忽略了第一个 X(在本例中为 3 个)字符,而将下一个字符用于正常使用第一个字符的所有内容。

标签: qt pyqt pyside qcombobox


【解决方案1】:

您可以为此目的使用事件过滤器。为您的组合框安装事件过滤器。如果事件类型是QEvent::KeyPress,请找出按下了哪个键,如果您感兴趣,请向包含组合框的小部件/对话框/主窗口发出包含必要信息的信号。

你可以找到一个例子here

【讨论】:

    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    相关资源
    最近更新 更多