#include "MainWindow.h"
#include "ui_MainWindow.h"
#include <QDebug>
#include <QKeyEvent>
int up_x = 5;
int up_y = 5;
int up_w = 50;
int up_h = 50;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->v_triggerWidget = new KeyboardHighFrequencyTriggerWidget(this);
// this->v_triggerWidget->setFocus();
this->connect(this->v_triggerWidget,&KeyboardHighFrequencyTriggerWidget::pressedKeyList,this,[&](QList<int>_)
{
qDebug().noquote() << "KeyboardHighFrequencyTriggerWidget : " << _;
int w_l = 0;
int s_l = 0;
int a_l = 0;
int d_l = 0;
if(_.contains(Qt::Key_W))
{
w_l++;
int a= Qt::Key_W;
this->boxMove(a,2);
}
if(_.contains(Qt::Key_S))
{
s_l++;
int a= Qt::Key_S;
this->boxMove(a,2);
}
if(_.contains(Qt::Key_A))
{
a_l++;
int a= Qt::Key_A;
this->boxMove(a,2);
}
if(_.contains(Qt::Key_D))
{
d_l++;
int a= Qt::Key_D;
this->boxMove(a,2);
}
});
this->connect(this->v_triggerWidget,&KeyboardHighFrequencyTriggerWidget::releasedKeyList,this,[&]()
{
qDebug().noquote() << "releasedKeyList : ";
});
this->v_time_A.setInterval(10);
this->v_time_W.setInterval(10);
this->v_time_S.setInterval(10);
this->v_time_D.setInterval(10);
// this->v_time_press.setInterval(10);
// this->connect(&this->v_time_press,&QTimer::timeout,this,[&]()
// {
// qDebug().noquote() << "key :" << this->v_pressKeyList;
// int w_l = 0;
// int s_l = 0;
// int a_l = 0;
// int d_l = 0;
// if(this->v_pressKeyList.contains(Qt::Key_W))
// {
// w_l++;
// int a= Qt::Key_W;
// this->boxMove(a,2);
// }
// if(this->v_pressKeyList.contains(Qt::Key_S))
// {
// s_l++;
// int a= Qt::Key_S;
// this->boxMove(a,2);
// }
// if(this->v_pressKeyList.contains(Qt::Key_A))
// {
// a_l++;
// int a= Qt::Key_A;
// this->boxMove(a,2);
// }
// if(this->v_pressKeyList.contains(Qt::Key_D))
// {
// d_l++;
// int a= Qt::Key_D;
// this->boxMove(a,2);
// }
// });
widget = new ObjectWidget(this);
widget->setGeometry(0,0,50,50);
widget->show();
// this->ui->pushButton->setAutoRepeatDelay(400);//触发长按的时间
// this->ui->pushButton->setAutoRepeatInterval(400);//长按时click信号间隔
this->connect(widget,&ObjectWidget::moved,this,[&](int _x,int _y)
{
auto geometry = this->geometry();
auto widget = (ObjectWidget*)sender();
auto pos = widget->pos();
qDebug().noquote() << pos;
if(pos.x() == 0&& pos.x() == 0)
{
up_x = 4;
up_y = 4;
widget->setGeometry(pos.x() + up_x ,pos.y()+ up_y,up_w,up_h);
}
else if(pos.x() >= 800 - up_w)
{
if(up_x >0)
{
up_x = -4;
}
else
{
up_x = 4;
}
// up_w+=5;
// up_h+=5;
widget->setGeometry(pos.x() + up_x ,pos.y()+ up_y ,up_w,up_h);
}
else if(pos.x() <= 0)
{
if(up_x >0)
{
up_x = -4;
}
else
{
up_x = 4;
}
// up_w+=5;
// up_h+=5;
widget->setGeometry(pos.x() + up_x ,pos.y()+ up_y,up_w,up_h);
}
else if(pos.y() >= 600 - up_h)
{
if(up_y >0)
{
up_y = -4;
}
else
{
up_y = 4;
}
// up_w+=5;
// up_h+=5;
widget->setGeometry(pos.x() + up_x ,pos.y()+ up_y,up_w,up_h);
}
else if(pos.y() <=0)
{
if(up_y >0)
{
up_y = -4;
}
else
{
up_y = 4;
}
// up_w+=5;
// up_h+=5;
widget->setGeometry(pos.x() + up_x ,pos.y()+ up_y,up_w,up_h);
}
else
{
widget->setGeometry(pos.x() + up_x ,pos.y()+ up_y,up_w,up_h);
}
});
// this->connect(this,&MainWindow::pressed,this,[&](QList<int>_)
// {
// qDebug().noquote() << "press===============" << this->v_pressKeyList;
// if(_.isEmpty())
// {
// }
// else
// {
// this->v_time_press.start();
// }
// });
// this->connect(this,&MainWindow::released,this,[&](QList<int>_)
// {
// qDebug().noquote() << "release===============" << this->v_pressKeyList;
// if(_.isEmpty())
// {
// this->v_time_press.stop();
// }
// });
}
MainWindow::~MainWindow()
{
delete ui;
}
//void MainWindow::keyPressEvent(QKeyEvent *event)
//{
// switch(event->key()){
// case Qt::Key_W:
// if(!event->isAutoRepeat()){
// this->v_pressKeyList.append(event->key());
// emit this->pressed(this->v_pressKeyList);
// /* add your code here*/
// }
// break;
// case Qt::Key_A:
// if(!event->isAutoRepeat()){
// this->v_pressKeyList.append(event->key());
// emit this->pressed(this->v_pressKeyList);
// /* add your code here*/
// }
// break;
// case Qt::Key_D:
// if(!event->isAutoRepeat()){
// this->v_pressKeyList.append(event->key());
// emit this->pressed(this->v_pressKeyList);
// /* add your code here*/
// }
// break;
// case Qt::Key_S:
// if(!event->isAutoRepeat()){
// this->v_pressKeyList.append(event->key());
// emit this->pressed(this->v_pressKeyList);
// /* add your code here*/
// }
// break;
// /*default:
// this->ui.textEdit->append("KeyEvent");*/
// }
//}
//void MainWindow::keyReleaseEvent(QKeyEvent *event)
//{
// switch(event->key()){
// case Qt::Key_W:
// if(!event->isAutoRepeat()){
// this->v_pressKeyList.removeOne(event->key());
// emit this->released(this->v_pressKeyList);
// }
// break;
// case Qt::Key_A:
// if(!event->isAutoRepeat()){
// this->v_pressKeyList.removeOne(event->key());
// emit this->released(this->v_pressKeyList);
// }
// break;
// case Qt::Key_S:
// if(!event->isAutoRepeat()){
// this->v_pressKeyList.removeOne(event->key());
// emit this->released(this->v_pressKeyList);
// }
// break;
// case Qt::Key_D:
// if(!event->isAutoRepeat()){
// this->v_pressKeyList.removeOne(event->key());
// emit this->released(this->v_pressKeyList);
// }
// break;
// /*default:
// this->ui.textEdit->append("KeyEvent");*/
// }
// // qDebug().noquote() << "release==============" << this->v_pressKeyList;
//}
void MainWindow::boxMove(int _key, int _)
{
if(_key == Qt::Ke