首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测qt中的封头状态?

如何检测qt中的封头状态?
EN

Stack Overflow用户
提问于 2012-12-03 15:54:58
回答 1查看 2.2K关注 0票数 1

可能重复: Qt 4.7.4: Is there a way to find out the status of CAPS LOCK?

如何在mac os x上检测qt中的capslock键状态。

显示*d= XOpenDisplay((char*)0);

代码语言:javascript
运行
复制
bool caps_state = false;
if (d)
 {
  unsigned n;
  XkbGetIndicatorState(d, XkbUseCoreKbd, &n);
  caps_state = (n & 0x01) == 1;
 }
 return caps_state;

但它给了我以下错误:

架构x86_64的未定义符号:

"_XOpenDisplay",引用自:.o myclass::GetCapslockState()

代码语言:javascript
运行
复制
  myclass::keyEvent(QKeyEvent*)     

"_XkbGetIndicatorState",引用自:.o

代码语言:javascript
运行
复制
  myclass::GetCapslockState()       in .o
  myclass::keyEvent(QKeyEvent*)      in .o

没有找到用于体系结构x86_64 collect2的符号: ld返回一个退出状态

我是新来的。我不明白它为什么要给我看这个错误。我已经包含了"#include“头文件。如果有人知道请帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2012-12-03 17:31:21

您可以使用以下方法检测到对键的更改:

代码语言:javascript
运行
复制
QWidget::keyPressEvent()
// and
QWidget::keyReleaseEvent()

在某些情况下,可以使用这些方法来确定状态,比如您知道在程序初始化时caps锁的状态,或者假设或需要某种状态。然而,没有平台无关的手段,我知道,直接查询当前状态的大写锁。您需要使用依赖于平台的方法。确保支持caps锁状态不存在或无法检测到的情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13686897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档