• 5200阅读
  • 5回复

右键click [复制链接]

上一主题 下一主题
离线beajisong
 

只看楼主 倒序阅读 楼主  发表于: 2007-07-20
右键click
— 本帖被 XChinux 执行加亮操作(2008-07-18) —
clicked信号只能知道是点了一下
能在接受槽里判断是左右吗?
[ 此贴被XChinux在2008-07-18 12:00重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2007-07-20
QWidget::keyPressEvent ( QKeyEvent * event )  [virtual protected]
实现一下这个函数。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线beajisong

只看该作者 2楼 发表于: 2007-07-21
如果不实现这个,可以判断吗
离线XChinux

只看该作者 3楼 发表于: 2007-07-21
实现这个不难,很方便。如果是窗体,那直接实现就可以了。无非是在里面进行一下参数判断,需要自己处理的处理,不需要自己处理的让系统自己去处理。
如果是部件,则在Designer上用Promote to 一个新类,在类里实现。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线XChinux

只看该作者 4楼 发表于: 2007-07-21
Assistant里的一个例子:

void TetrixBoard::keyPressEvent(QKeyEvent *event)
{
    if (!isStarted || isPaused || curPiece.shape() == NoShape) {
        QFrame::keyPressEvent(event);
        return;
    }

    switch (event->key()) {
    case Qt::Key_Left:
        tryMove(curPiece, curX - 1, curY);
        break;
    case Qt::Key_Right:
        tryMove(curPiece, curX + 1, curY);
        break;
    case Qt::Key_Down:
        tryMove(curPiece.rotatedRight(), curX, curY);
        break;
    case Qt::Key_Up:
        tryMove(curPiece.rotatedLeft(), curX, curY);
        break;
    case Qt::Key_Space:
        dropDown();
        break;
    case Qt::Key_D:
        oneLineDown();
        break;
    default:
        QFrame::keyPressEvent(event);
    }
}
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线beajisong

只看该作者 5楼 发表于: 2007-07-21
谢谢xchinux大哥
帮这么多忙
快速回复
限100 字节
 
上一个 下一个