ravaei
یک شنبه 09 فروردین 1394, 21:32 عصر
درود...
من کد زیر رو برای دسترسی به key press و key release چند تا از دکمه های کیبورد نوشتم و از کلاس Qkeyevent برای این کار تو تابع استفاده کردم
ولی نمیدونم چرا فقط تابع key() از کلاس Qkeyevent قابل استفاده هست و تو دستور switch دوم هر چی مینویسم کار نمی کنه ...
اگه زحمت نیست یه توضیحی هم راجع به Qevent بدید که آیا میشه از این به جای Qkeyevent استفاده کرد ....؟
void lid::keyPressEvent(QKeyEvent *e)
{
switch (e->key())
{
case Qt::Key_Tab: this->on_do_2_pressed(); break;
case Qt::Key_1: this->on_do_diyez_pressed(); break;
case Qt::Key_Q: this->on_re_pressed(); break;
case Qt::Key_2: this->on_re_diyez_pressed(); break;
case Qt::Key_W: this->on_mi_pressed(); break;
case Qt::Key_E: this->on_fa_pressed(); break;
case Qt::Key_4: this->on_fa_diyez_pressed(); break;
case Qt::Key_R: this->on_sol_pressed(); break;
case Qt::Key_5: this->on_sol_diyez_pressed(); break;
case Qt::Key_T: this->on_la_pressed(); break;
case Qt::Key_6: this->on_la_diyez_pressed(); break;
case Qt::Key_Y: this->on_si_pressed(); break;
default:
break;
}
switch (e->KeyRelease)
{
case Qt::Key_1: ui->do_diyez->setStyleSheet("background-color: rgb(255, 225, 225);");
break;
default:
break;
}
}
با تشکر...
من کد زیر رو برای دسترسی به key press و key release چند تا از دکمه های کیبورد نوشتم و از کلاس Qkeyevent برای این کار تو تابع استفاده کردم
ولی نمیدونم چرا فقط تابع key() از کلاس Qkeyevent قابل استفاده هست و تو دستور switch دوم هر چی مینویسم کار نمی کنه ...
اگه زحمت نیست یه توضیحی هم راجع به Qevent بدید که آیا میشه از این به جای Qkeyevent استفاده کرد ....؟
void lid::keyPressEvent(QKeyEvent *e)
{
switch (e->key())
{
case Qt::Key_Tab: this->on_do_2_pressed(); break;
case Qt::Key_1: this->on_do_diyez_pressed(); break;
case Qt::Key_Q: this->on_re_pressed(); break;
case Qt::Key_2: this->on_re_diyez_pressed(); break;
case Qt::Key_W: this->on_mi_pressed(); break;
case Qt::Key_E: this->on_fa_pressed(); break;
case Qt::Key_4: this->on_fa_diyez_pressed(); break;
case Qt::Key_R: this->on_sol_pressed(); break;
case Qt::Key_5: this->on_sol_diyez_pressed(); break;
case Qt::Key_T: this->on_la_pressed(); break;
case Qt::Key_6: this->on_la_diyez_pressed(); break;
case Qt::Key_Y: this->on_si_pressed(); break;
default:
break;
}
switch (e->KeyRelease)
{
case Qt::Key_1: ui->do_diyez->setStyleSheet("background-color: rgb(255, 225, 225);");
break;
default:
break;
}
}
با تشکر...