#include "DigitalInput.h" #include "ui_digitalinput.h" #include "MyInputMethod.h" DigitalInput::DigitalInput(MyInputMethod *myInputMethod,QWidget *parent) : QWidget(parent,(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::Tool)), ui(new Ui::DigitalInput) { ui->setupUi(this); this->myInputMethod = myInputMethod; connect(ui->Key_0,SIGNAL(pressed()),this,SLOT(onCharPressed())); connect(ui->Key_1,SIGNAL(pressed()),this,SLOT(onCharPressed())); connect(ui->Key_2,SIGNAL(pressed()),this,SLOT(onCharPressed())); connect(ui->Key_3,SIGNAL(pressed()),this,SLOT(onCharPressed())); connect(ui->Key_4,SIGNAL(pressed()),this,SLOT(onCharPressed())); connect(ui->Key_5,SIGNAL(pressed()),this,SLOT(onCharPressed())); connect(ui->Key_6,SIGNAL(pressed()),this,SLOT(onCharPressed())); connect(ui->Key_7,SIGNAL(pressed()),this,SLOT(onCharPressed())); connect(ui->Key_8,SIGNAL(pressed()),this,SLOT(onCharPressed())); connect(ui->Key_9,SIGNAL(pressed()),this,SLOT(onCharPressed())); connect(ui->Key_pluse,SIGNAL(pressed()),this,SLOT(onCharPressed())); connect(ui->Key_backspace,SIGNAL(pressed()),this,SLOT(onKeyBackspacePressed())); connect(ui->Key_selectAll,SIGNAL(pressed()),this,SLOT(onKeySelectAllPressed())); connect(ui->Key_up,SIGNAL(pressed()),this,SLOT(onKeyUpPressed())); connect(ui->Key_down,SIGNAL(pressed()),this,SLOT(onKeyDownPressed())); } DigitalInput::~DigitalInput() { delete ui; } void DigitalInput::onCharPressed(){ QPushButton * button = qobject_cast(sender()); QString text = button->text(); myInputMethod->sendString (text); } void DigitalInput::onKeyBackspacePressed(){ #ifndef Q_OS_WIN32 QWSServer::sendKeyEvent(0,Qt::Key_Backspace,Qt::NoModifier,true,false); //向系统发送键盘事件 #endif } void DigitalInput::onKeySelectAllPressed(){ static int init = 0; #ifndef Q_OS_WIN32 QWSServer::sendKeyEvent(0,Qt::Key_A,Qt::ControlModifier,true,false); //向系统发送键盘事件 if(!init) QWSServer::sendKeyEvent(0,Qt::Key_A,Qt::ControlModifier,true,false); //向系统发送键盘事件 init = 1; #endif } void DigitalInput::onKeyUpPressed(){ #ifndef Q_OS_WIN32 QWSServer::sendKeyEvent(0,Qt::Key_Up,Qt::NoModifier,true,false); //向系统发送键盘事件 #endif } void DigitalInput::onKeyDownPressed(){ #ifndef Q_OS_WIN32 QWSServer::sendKeyEvent(0,Qt::Key_Down,Qt::NoModifier,true,false); //向系统发送键盘事件 #endif }