• 3941阅读
  • 0回复

[提问]请教QComboBox的键盘控制 [复制链接]

上一主题 下一主题
离线zsh365
 

只看楼主 正序阅读 楼主  发表于: 2012-07-27
大神呀,我这个应用需要无鼠标处理输入界面
使用到QComboBox时遇到一个问题,popup弹出listview以后,我想实现,按左右键,则关闭当前当前listview,并将焦点传给下一个控件。
不过我最需要的事情,按左右键时,可以将按键事件传给上级的一个Qgroupbox,在QGroupbox里,我重载了KeyPress事件来决定将焦点传给哪个控件。

继承了一个QListView,
QBaseListView : public QListView
继承了一个QComboBox,
QBaseComboBox : public QComboBox


QBaseListView *listvew = new QBaseListView;
comboBox->setView(listvew);
发现listview可以在按左右键时,收到keyPress事件,而comboBox无法收到keyPress事件。

各位大神,如何解决?

void QBaseListView::keyPressEvent ( QKeyEvent * e )
{
    int key = e->key ();
    if( key == Qt::Key_Left) {
       // QMessageBox::question(this,  "aa" , "xxxx", QMessageBox::Yes);

    }
    QListView::keyPressEvent ( e );
}

void QBaseComboBox::keyPressEvent ( QKeyEvent * e )
{
    int key = e->key ();
    if( key == Qt::Key_Left) {
        QMessageBox::question(this,  "aa" , "yyy", QMessageBox::Yes);
    }
    QComboBox::keyPressEvent ( e );
}


快速回复
限100 字节
 
上一个 下一个