QKeyEvent类参考
QKeyEvent类用于描述键盘按键所产生的QT事件
#include<QKeyEvent>
继承于QInpueEvent
公有函数:

QKeyEvent ( Type type, int key, Qt::KeyboardModifiers modifiers, const QString & text = QString(), bool autorep = false, ushort count = 1 )
 
            
 int count () const
 bool isAutoRepeat () const
 int key () const
 bool matches ( QKeySequence::StandardKey key ) const
 Qt::KeyboardModifiers modifiers () const
 quint32 nativeModifiers () const
 quint32 nativeScanCode () const
 quint32 nativeVirtualKey () const
 QString text () const

相关的非成员函数:

bool operator== ( QKeyEvent * e, QKeySequence::StandardKey key )
 bool operator== ( QKeySequence::StandardKey key, QKeyEvent * e )

细节描述:

QKeyEvent类用于描述键盘按键所产生的QT事件,当一个窗口具有输入焦点时,通过键盘的按键的(敲击/释放)所产生的QT键盘事件

可以传送给具有输入焦点的窗口进行处理。

键盘QT事件包含了一些指定的接收标志用于指出QT事件接受者是否对该事件进行处理,如果窗口不处理键盘的(敲击/释放)

可以通过调用ignore()函数予以忽略。键盘QT事件具有传递性,会传送给父窗口及顶层窗口所构成的链表,一层一层的传递,

直到某窗口调用accept()予以接受,或者过滤直至该事件被销毁。键盘QT事件对于多媒体在默认情况下总是被忽略的,

如果你的窗口要处理该事件,可以通过调用accept()函数予以接收。



可以通过调用QWidget::setEnable()函数设置某个窗口开启/禁止接收鼠标或键盘事件。

QT事件句柄函数 QWidget::keyPressEvent(), QWidget::keyReleaseEvent(), QGraphicsItem::keyPressEvent() 

, QGraphicsItem::keyReleaseEvent()可以用于接收键盘事件。



成员函数描述:


QKeyEvent::QKeyEvent ( Type type, int key, Qt::KeyboardModifiers modifiers, const QString & text = QString(), bool autorep = false, ushort count = 1 )


初始化一个keyEvent对象。

参数type必须是QEvent::KeyPress, QEvent::KeyRelease, or QEvent::ShortcutOverride其中之一。 

参数key用于监听QT::Key循环事件,如果key为0则导致键盘事件的是一个未定义按键,例如,导致该键盘事件的可能是

连续不断的按键下压操作或者是预定义的快捷键。  

参数modifiers用于指出键盘按键键值的改变,同时给出该按键对应的Unicode编码信息。

如果参数autorep为true,函数isAutoRepeat()函数就返回true

参数count用于计算该键盘事件所牵扯到得按键的个数。



int QKeyEvent::count () const

返回键盘QT事件所牵扯到的按键的数量,如果函数text()返回不为空,则本函数只是简单的计算该文本字符串的长度。



bool QKeyEvent::isAutoRepeat () const

如果该键盘QT事件时由于一些列的自动重复的按键导致的则返回true,否则返回false

注意,如果导致多次叠加的按键组合其中一部分是自动循环形式产生的,则该函数不确定是返回true还是false。



int QKeyEvent::key () const

返回按键被下压或释放时对应的编码值。查看Qt::Key键盘编码清单,这些编码信息都是依赖于底层操作系统的。

该函数不区分大小写,要想知道返回的按键编码所对应的按键是大写还是小写(比如A和a)可以通过调用text()函数得到。  

数字0和Qt::Key_unknown代表导致QT键盘事件的不是一个well_known按键所产生的,例如,导致该键盘事件的可能是一系列复杂的输入,或者是快捷键,或者是被压缩的按键所导致的。


bool QKeyEvent::matches ( QKeySequence::StandardKey key ) const

如果导致键盘QT事件的按键编码值和参数key所给出的标准按键值匹配则返回true,否则返回false.

该函数在QT4.2中有介绍。该函数可以通过迭代方式得知当前按下的是哪一个按键。



Qt::KeyboardModifiers QKeyEvent::modifiers () const

键盘QT事件生成后直接返回导致该事件的热键。提示:该函数并不总是返回很确切的结果,当用户同时按下shift+组合键或者

释放其中某一个键时,该函数就可能返回一个让用户迷惑的结果。



quint32 QKeyEvent::nativeModifiers () const

返回导致键盘QT事件的热键编码值,如果该事件不包含所对应的热键则返回数字0.

附注:即便键盘事件包含扩展信息,该热键也可能是为0的。

该函数在QT4.2中有介绍。



quint32 QKeyEvent::nativeScanCode () const

返回导致该键盘QT事件的扫描码,如果敢事件不包含所对应的扫描码则返回数字0.

附注:即便键盘事件包含扩展信息,该扫描码也可能是为0的。

附注:在Mac OS/X 系统上该函数式无效的,因为没有办法从Cocoa或者Carbon中获取扫描码,该函数通常返回1,或者当包含扩展信息时返回0.

该函数在QT4.2中有介绍



quint32 QKeyEvent::nativeVirtualKey () const

返回导致键盘QT事件的虚拟键或者字符码,如果该键盘事件没有包含该按键的编码则返回0.

附注:即便键盘事件包含扩展信息,该虚拟键也可能是为0的。 

该函数在QT4.2中有介绍



QString QKeyEvent::text () const

返回导致的键盘事件的Unicode字符编码信息,当导致键盘事件的原因是由热键比如Shift, Control, Alt等的下压或者释放,

则该函数返回的字符可以为空值。在这种情况下函数key()可以返回一个有效值。



相关的非成员函数:

bool operator== ( QKeyEvent * e, QKeySequence::StandardKey key )

如果参数e和参数key类型匹配且相等则返回true

等同于函数 e->matches(key).



bool operator== ( QKeySequence::StandardKey key, QKeyEvent * e )

如果参数e和参数key类型匹配且相等则返回true

等同于函数 e->matches(key).