0
所以基本上我想要做的是以下幾點: 我想在屏幕上創建一個方向箭頭鍵盤。當用戶按下向上或8鍵時,UI應該像我點擊向上按鈕一樣作出反應。我已經搜索並搜索了所有內容,但正如我剛開始使用QTCreator(和C++)時那樣,我很缺乏經驗,並且不勝感激。需要幫助事件處理信令在QTcreator
到目前爲止,我有
class GamePadWidget : public QWidget
{
public:
GamePadWidget(QWidget *parent = 0);
protected:
virtual void keyPressEvent(QKeyEvent *event);
};
GamePadWidget::GamePadWidget(QWidget *parent)
: QWidget(parent)
{
int buttonWidth = 75;
int buttonHeight = 75;
QPushButton *down = new QPushButton(("Y-"), this);;
down->setGeometry(100, 200, 100, 100);
QIcon downicon;
downicon.addFile(QString::fromUtf8("C:/arrows/Aiga_downarrow.png"), QSize(),QIcon::Normal, QIcon::Off);
down->setIcon(downicon);
down->setIconSize(QSize(buttonWidth,buttonHeight));
down->setFocusPolicy(Qt::NoFocus);
QPushButton *up = new QPushButton(("Y+"), this);;
up->setGeometry(100, 50, 100, 100);
QIcon upicon;
upicon.addFile(QString::fromUtf8("C:/arrows/Aiga_uparrow.png"), QSize(),QIcon::Normal, QIcon::Off);
up->setIcon(upicon);
up->setIconSize(QSize(buttonWidth,buttonHeight));
up->setFocusPolicy(Qt::NoFocus);
}
void GamePadWidget::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_8 || event->key() == Qt::Key_Up) {
printf("key event in board");
}
else if (event->key() == Qt::Key_9 || event->key() == Qt::Key_Down) {
qApp->quit();
}
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
GamePadWidget widget;
widget.show();
return app.exec();
}
與我當前的代碼,如果我按下去或2,如預期的應用程序退出,但這裏是在我停留在部分。
我想相同的功能,如果我按了向下(或向上鍵),按鈕應該亮起短暫再射斷信號,誰知道在哪裏
我意識到這應該是與連接(退出,SIGNAL(clicked()),qApp,SLOT(quit()));
但不能完全包住我的想法/找到它。
謝謝你的時間。