当前位置: 首页 > news >正文

qt之捕获键盘组合键事件

image


class QRollLabel:public QLabel
{Q_OBJECTpublic:QRollLabel(QWidget *parent=nullptr):QLabel(parent){mRollingText="我不是萧海哇111111111111111111111111111";setText(mRollingText);resize(300,150);QFontMetrics fm(this->font()); // 使用当前widget的字体mTextWidth = fm.horizontalAdvance(mRollingText); // 推荐使用这个QTimer *t=new QTimer(this);connect(t,&QTimer::timeout,[=](){mPosx-=10;update();if(mPosx<=-mTextWidth){mPosx=mTextWidth;}});t->start(100);QVariant var;var.setValue(true);this->setProperty("canMove", var);installEventFilter(this);}void paintEvent(QPaintEvent *event){QPainter painter(this);if(!mRollingText.isEmpty()){painter.drawText(QRect(mPosx,0,mTextWidth,30),Qt::AlignLeft,mRollingText);}}bool eventFilter( QObject *obj, QEvent *e ){
//        Q_ASSERT(obj == m_editMsg);if (e->type() == QEvent::KeyPress){QKeyEvent *event = static_cast<QKeyEvent*>(e);if (event->key() == Qt::Key_Return && (event->modifiers() & Qt::ControlModifier)){qDebug()<<"ctrl+enter press";return true;}else if (event->key() == Qt::Key_D && (event->modifiers() & Qt::AltModifier)){qDebug()<<"alt+d press";return true;}else if (event->key() == Qt::Key_Return){qDebug()<<"return  press";return true;}}return false;}private:QString mRollingText;int mTextWidth=100;int mPosx=0;
};

image

http://www.rkmt.cn/news/369.html

相关文章:

  • ???记录?
  • CSP 赛前周记#2
  • Go
  • 做题记录
  • 软工第一次作业
  • WC2024 水镜 bakas trick 记录
  • 吸吸
  • 超越-env-一份成熟的应用程序配置指南
  • 202404_QQ_维纳攻击
  • perf中 的dwarf是什么?
  • 读书笔记:一文搞懂Oracle全局临时表的统计信息管理
  • 故障处理:dul直接抽取exp文件
  • 2025-09-08 uniapp小程序赋值生效了但是页面却没变化?==》使用v-if+变量来控制元素的重新渲染
  • 12.8 类与对象的绑定方法和非绑定方法
  • 9.8
  • nfs服务
  • 低功耗蓝牙BLE与小程序通讯
  • 深度解码你自己看着办:职场新人必须掌握的潜台词破解术
  • 记录一个Windows上的键盘鼠标模拟库和沟子库--Input
  • 数据集和数据系统_AI成为工作中很好用的协同成员了
  • IDM超详细图文安装激活教程,一次安装免费使用 Internet Download Manager
  • 标题
  • 12.5 多态与多态性
  • 集训日记
  • 从想法到代码:AI编程时代,我们如何高质量“喂养”AI?
  • 25年CSP前ds做题记录
  • CSP-S模拟18
  • python基础——函数小进阶
  • 别再猜了-开始测量吧-一份实用的Web性能指南
  • C++《C++11》(上) - 详解