当前位置: 首页 > 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.agseo.cn/news/432/

相关文章:

  • ???记录?
  • LIN 的调度表周期和应用任务周期不一致的问题分析
  • 自我介绍与软工五问
  • 关于我的大三生活
  • CSP 赛前周记#2
  • 建立本地仓库
  • 厨房小白学做饭——2.苦瓜炒蛋
  • DAY2
  • Go
  • Discipline
  • 长乐一中 CSP-S 2025 提高级模拟赛 Day1
  • 做题记录
  • CF1967D Long Way to be Non-decreasing
  • 软工第一次作业
  • 202310_FSCTF_DoYouKnowGCD?
  • WC2024 水镜 bakas trick 记录
  • 吸吸
  • 你的中间件一团糟-是时候修复它了-️
  • 超越-env-一份成熟的应用程序配置指南
  • 202404_QQ_维纳攻击
  • Typora
  • Proximal SFT:用PPO强化学习机制优化SFT,让大模型训练更稳定
  • ARC205_B Triangle Toggle题解
  • perf中 的dwarf是什么?
  • 读书笔记:一文搞懂Oracle全局临时表的统计信息管理
  • Anthropic 封禁中国资本背景企业使用Claude!国内AI编程选择将何去何从?
  • 故障处理:dul直接抽取exp文件
  • 解题报告-洛谷P3773 [CTSC2017] 吉夫特
  • ARC137E
  • 政治笔记