• 5296阅读
  • 7回复

KEY_Tab的问题。如何实现Tab widget内部页的键盘切换。 [复制链接]

上一主题 下一主题
离线jackie52
 
只看楼主 倒序阅读 楼主  发表于: 2008-03-05
— 本帖被 XChinux 执行加亮操作(2008-07-17) —

如上图
如何通过键盘上的“TAB”键,实现tab1和tab2的切换。
下面的代码没有成功/
请高人指点下。
void Tabtest::keyPressEvent(QKeyEvent *e)
{
    if(e->key()==Qt::Key_Tab )       
    {
        ui.tabWidget->setCurrentIndex(1);
    }
}
离线XChinux

只看该作者 1楼 发表于: 2008-03-05
正常情况下是用左、右键进行Tab部件里的各个Tab页的切换的吧
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线jackie52
只看该作者 2楼 发表于: 2008-03-05
是的。但是如何使用TAB键切换啊。。。
离线jackie52
只看该作者 3楼 发表于: 2008-03-05
我在网上查的资料说重新写QT封装的event函数,下面的代码从网上搜的。但是我试了,没成功。。。。。
bool Tabtest::event(QEvent *event)
{    if (event->type() == QEvent::KeyPress) {
    QKeyEvent *ke = static_cast<QKeyEvent *>(event);       
        if (ke->key() == Qt::Key_Tab) {   
    ui.tabWidget->setCurrentIndex(1);
    return true;

} else if (event->type() == MyCustomEventType)

    MyCustomEvent *myEvent = static_cast<MyCustomEvent *>(event);
    return  true;   

return QWidget::event(event);
}
离线XChinux

只看该作者 4楼 发表于: 2008-03-05
是不是要重写父部件的keyPressEvent()???
只是猜测,没有实验。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线landuochong

只看该作者 5楼 发表于: 2008-03-05
我觉得是keyPressEvent()
离线jackie52
只看该作者 6楼 发表于: 2008-03-06
....还是没成功。。。。。
老大们。。。来帮忙啊。。。。。
离线zncggaofei
只看该作者 7楼 发表于: 2008-03-06
Tab Widget默认是用 Ctrl+Tab  或 左右键来控制内部页的键盘切换
There is someone that is coming or passing away in your life around the clock, so you may lose sight of those seen, and forget those remembered. There is gain and loss in your life, so you may catch sight of those unseen, and remember those forgotten. Nevertheless, doesn’t the unseen exist for sure? Will the remembered remain forever?
快速回复
限100 字节
 
上一个 下一个