#include "widget.h"
#include "ui_widget.h"
#include <qlabel.h>
#include <qpushbutton.h>
#include <qlayout.h>
#include <qspinbox.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
//#include <sys/ioctl.h>
#include <fcntl.h>
#include <qapplication.h>
#include <QMessageBox>
#include <QAbstractButton>
#include <qsound.h>
//#define PWM_IOCTL_SET_FREQ 1
//#define PWM_IOCTL_STOP 0
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget:: PWM_Play(char c)
{
switch(c)
{
case 'A':QSound::play(":/40-C -小字1组.wav");break;
case 'W':QSound::play(":/41-C# -小字1组.wav");break;
case 'S':QSound::play(":/42-D -小字1组.wav");break;
case 'E':QSound::play(":/43-D# -小字1组.wav");break;
case 'D':QSound::play(":/44-E -小字1组.wav");break;
case 'F':QSound::play(":/45-F -小字1组.wav");break;
case 'T':QSound::play(":/46-F# -小字1组.wav");break;
case 'G':QSound::play(":/47-G -小字1组.wav");break;
case 'Y':QSound::play(":/48-G# -小字1组.wav");break;
case 'H':QSound::play(":/49-A -小字1组.wav");break;
case 'U':QSound::play(":/50-A# -小字1组.wav");break;
case 'J':QSound::play(":/51-B -小字1组.wav");break;
case 'K':QSound::play(":/52-C -小字2组.wav");break;
case 'O':QSound::play(":/53-C# -小字2组.wav");break;
case 'L':QSound::play(":/54-D -小字2组.wav");break;
case 'P':QSound::play(":/55-D# -小字2组.wav");break;
case ';':QSound::play(":/56-E -小字2组.wav");break;
default :sleep(1);break;
}
}
//中音
//C 523
void Widget::on_Button_C_clicked()
{
PWM_Play('A');
}
//C# 554
void Widget::on_Button_C_2_clicked()
{
PWM_Play('W');
}
//D 587
void Widget::on_Button_D_clicked()
{
PWM_Play('S');
}
//Eb 622
void Widget::on_Button_Eb_clicked()
{
PWM_Play('E');
}
//E 659
void Widget::on_Button_E_clicked()
{
PWM_Play('D');
}
//F 698
void Widget::on_Button_F_clicked()
{
PWM_Play('F');
}
//F# 740
void Widget::on_Button_F_2_clicked()
{
PWM_Play('T');
}
//G 784
void Widget::on_Button_G_clicked()
{
PWM_Play('G');
}
//G# 831
void Widget::on_Button_G_2_clicked()
{
PWM_Play('Y');
}
//A 880
void Widget::on_Button_A_clicked()
{
PWM_Play('H');//QMessageBox::information(this, "Title", "Text");
}
//Bb 932
void Widget::on_Button_Bb_clicked()
{
PWM_Play('U');
}
//B 988
void Widget::on_Button_B_clicked()
{
PWM_Play('J');
}
//高音
//C 1047
void Widget::on_Button_C_3_clicked()
{
PWM_Play('K');
}
//C# 1109
void Widget::on_Button_C_4_clicked()
{
PWM_Play('O');
}
//D 1175
void Widget::on_Button_D_2_clicked()
{
PWM_Play('L');
}
//Eb 1245
void Widget::on_Button_Eb_2_clicked()
{
PWM_Play('P');
}
//E 1319
void Widget::on_Button_E_2_clicked()
{
PWM_Play(';');//QMessageBox::information(this, "Title", "Text");
}
void Widget::keyPressEvent(QKeyEvent *event)
{
int uKey = event->key();
//Qt::Key key = static_cast<Qt::Key>(uKey);
switch(uKey)
{//信号、事件
case Qt::Key_A:
//event->KeyPress;
//QCoreApplication::sendEvent(ui->Button_A,
//new QEvent(QEvent::MouseButtonRelease)); break;
//emit f1();
emit ui->Button_C->click();
ui->Button_C->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);selection-color: rgb(255, 255, 255);padding-top: 60%;border-width:1px;border-style:solid;border-left-color: rgb(0, 0, 0); border-top-color: rgb(0, 0, 0);}");
/*
QPoint pos;
pos = ui->Button_A->pos();
pos.setX( 20 + pos.x()+(ui->Button_A->width())/2 );
pos.setY( 320 + pos.y()+(ui->Button_A->height())/2 );
QMouseEvent *Press_event = new QMouseEvent(QEvent::MouseButtonPress,
pos,Qt::LeftButton,Qt::LeftButton,Qt::NoModifier);
QApplication::sendEvent(ui->Button_A,Press_event);
break;
case Qt::Key_W:emit ui->Button_C_2->click();break;
case Qt::Key_S:emit ui->Button_D->click();break;
case Qt::Key_E:emit ui->Button_Eb->click();break;
case Qt::Key_D:emit ui->Button_E->click();break;
case Qt::Key_F:emit ui->Button_F->click();break;
case Qt::Key_T:emit ui->Button_F_2->click();break;
case Qt::Key_G:emit ui->Button_G->click();break;
case Qt::Key_Y:emit ui->Button_G_2->click();break;
case Qt::Key_H:emit ui->Button_A->click();break;
case Qt::Key_U:emit ui->Button_Bb->click();break;
case Qt::Key_J:emit ui->Button_B->click();break;
case Qt::Key_K:emit ui->Button_C_3->click();break;
case Qt::Key_O:emit ui->Button_C_4->click();break;
case Qt::Key_L:emit ui->Button_D_2->click();break;
case Qt::Key_P:emit ui->Button_Eb_2->click();break;
case Qt::Key_Semicolon:emit ui->Button_E_2->click();break;*/
break;
case Qt::Key_W:emit ui->Button_C_2->click();ui->Button_C_2->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);border-width:0px;border-style:solid;color: rgb(0,0,0);}");break;
case Qt::Key_S:emit ui->Button_D->click();ui->Button_D->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);selection-color: rgb(255, 255, 255);padding-top: 60%; border-width:1px;border-style:solid;border-left-color: rgb(0, 0, 0); border-top-color: rgb(0, 0, 0);}");break;
case Qt::Key_E:emit ui->Button_Eb->click();ui->Button_Eb->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);border-width:0px;border-style:solid;color: rgb(0,0,0);}");break;
case Qt::Key_D:emit ui->Button_E->click();ui->Button_E->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);selection-color: rgb(255, 255, 255);padding-top: 60%; border-width:1px;border-style:solid;border-left-color: rgb(0, 0, 0); border-top-color: rgb(0, 0, 0);}");break;
case Qt::Key_F:emit ui->Button_F->click();ui->Button_F->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);selection-color: rgb(255, 255, 255);padding-top: 60%; border-width:1px;border-style:solid;border-left-color: rgb(0, 0, 0); border-top-color: rgb(0, 0, 0);}");break;
case Qt::Key_T:emit ui->Button_F_2->click();ui->Button_F_2->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);border-width:0px;border-style:solid;color: rgb(0,0,0);}");break;
case Qt::Key_G:emit ui->Button_G->click();ui->Button_G->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);selection-color: rgb(255, 255, 255);padding-top: 60%; border-width:1px;border-style:solid;border-left-color: rgb(0, 0, 0); border-top-color: rgb(0, 0, 0);}");break;
case Qt::Key_Y:emit ui->Button_G_2->click();ui->Button_G_2->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);border-width:0px;border-style:solid;color: rgb(0,0,0);}");break;
case Qt::Key_H:emit ui->Button_A->click();ui->Button_A->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);selection-color: rgb(255, 255, 255);padding-top: 60%; border-width:1px;border-style:solid;border-left-color: rgb(0, 0, 0); border-top-color: rgb(0, 0, 0);}");break;
case Qt::Key_U:emit ui->Button_Bb->click();ui->Button_Bb->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);border-width:0px;border-style:solid;color: rgb(0,0,0);}");break;
case Qt::Key_J:emit ui->Button_B->click();ui->Button_B->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);selection-color: rgb(255, 255, 255);padding-top: 60%; border-width:1px;border-style:solid;border-left-color: rgb(0, 0, 0); border-top-color: rgb(0, 0, 0);}");break;
case Qt::Key_K:emit ui->Button_C_3->click();ui->Button_C_3->setStyleSheet("QPushButton{background-color: rgb(255, 255, 255);selectio