• 7041阅读
  • 6回复

[提问]关于在TextEdit中使用回车键做快捷键的问题 [复制链接]

上一主题 下一主题
离线bboyfeiyu
 

只看楼主 倒序阅读 楼主  发表于: 2011-10-29
— 本帖被 XChinux 从 新闻资讯 移动到本区(2011-10-29) —
关键词: 求助QTextEdit
本人想做一个类似QQ的快捷键发送的效果,按下回车键时执行特定的操作,但是在TextEdit上不能实现,回车都被解析为换行操作。使用了事件注册器,QAction,QEvent重载KeyPress都没有达到效果。哪位前辈做过这个功能,请给点提示。非常感谢
离线jorneyr

只看该作者 1楼 发表于: 2011-10-29
事件过滤器可以的:
ui->textEdit->installEventFilter(this);

bool Widget::eventFilter(QObject *watched, QEvent *event) {
    if (watched == ui->textEdit && event->type() == QEvent::KeyPress) {
        int key = (static_cast<QKeyEvent *>(event))->key();

        if (Qt::Key_Return == key || Qt::Key_Enter == key) {
            qDebug() << "Enter pressed";
            return true;
        }
    }

    return QWidget::eventFilter(watched, event);
}
离线jdwx

只看该作者 2楼 发表于: 2011-10-29
回 楼主(bboyfeiyu) 的帖子
在QTextEdit里重载KeyPressEvent绝对能实现你的要求。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线bboyfeiyu

只看该作者 3楼 发表于: 2011-10-29
回 2楼(jdwx) 的帖子
恩,继承类是可以实现的,呵呵,我是问问前辈们有没有更直接的方法。谢了jdwx
离线roywillow

只看该作者 4楼 发表于: 2011-10-29
实现这么一个效果的话用事件过滤器可能更方便的
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线bboyfeiyu

只看该作者 5楼 发表于: 2011-10-29
回 4楼(roywillow) 的帖子
恩,开始用事件过滤器没有实现,刚才实现了,以前我只用了key_enter,这次我又加上了key_return才实现。
离线bboyfeiyu

只看该作者 6楼 发表于: 2011-10-29
回 1楼(jorneyr) 的帖子
谢了朋友,加上key_return实现了
快速回复
限100 字节
 
上一个 下一个