#include <QPoint>
#include <QKeyEvent>
#include <QPainter>
#include "Widget.h"
Widget::Widget( void ): QWidget( 0 ), m_PressedKeys( 0 )
{
// 设置窗口的一些属性
setFixedSize( 640, 360 );
setWindowTitle( tr( "KeyTest" ) );
// 设置文字
m_Text = tr( "Try to press key.\n" );
}
/*---------------------------------------------------------------------------*/
Widget::~Widget( void )
{
}
/*---------------------------------------------------------------------------*/
void Widget::paintEvent( QPaintEvent* event )
{
Q_UNUSED( event )
QPainter painter( this );
painter.drawText( QPoint( 32, 32 ), m_Text );
painter.drawText( QPoint( 32, 64 ), m_ShowText );
}
/*---------------------------------------------------------------------------*/
void Widget::keyPressEvent( QKeyEvent* event )
{
switch ( event->key( ) )
{
case Qt::Key_Up: SaveKeyPressed( Key_Up ); break;
case Qt::Key_Down: SaveKeyPressed( Key_Down ); break;
case Qt::Key_Left: SaveKeyPressed( Key_Left ); break;
case Qt::Key_Right: SaveKeyPressed( Key_Right ); break;
default: break;
}
SetShowText( );
update( );
}
/*---------------------------------------------------------------------------*/
void Widget::keyReleaseEvent( QKeyEvent* event )
{
switch ( event->key( ) )
{
case Qt::Key_Up: SaveKeyReleased( Key_Up ); break;
case Qt::Key_Down: SaveKeyReleased( Key_Down ); break;
case Qt::Key_Left: SaveKeyReleased( Key_Left ); break;
case Qt::Key_Right: SaveKeyReleased( Key_Right ); break;
default: break;
}
SetShowText( );
update( );
}
/*---------------------------------------------------------------------------*/
void Widget::SetShowText( void )
{
m_ShowText = tr( "Pressed Keys: " );
if ( KeyPressed( Key_Up ) ) m_ShowText += tr( "Up " );
if ( KeyPressed( Key_Down ) ) m_ShowText += tr( "Down " );
if ( KeyPressed( Key_Left ) ) m_ShowText += tr( "Left " );
if ( KeyPressed( Key_Right ) ) m_ShowText += tr( "Right " );
}
- 1
- 2
前往页