程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> qt-自己用Qt畫了一個方塊,想要控制方塊移動,paintevent和keypressevent已經寫好

qt-自己用Qt畫了一個方塊,想要控制方塊移動,paintevent和keypressevent已經寫好

編輯:編程綜合問答
自己用Qt畫了一個方塊,想要控制方塊移動,paintevent和keypressevent已經寫好

void Widget::paintEvent(QPaintEvent*event)
{QPainterpainter(this);
painter.setPen(QPen(Qt::black,8));
painter.drawRect(50,50,50,50);}

void Widget::keyPressEvent(QKeyEvent*event){
switch(event->key())
{caseQt::Key_S:
move(pos().x(),ui->pushButton->pos().y()-50);break;
caseQt::Key_W:
move(pos().x(),ui->pushButton->pos().y()+50);break;
default:QWidget::keyPressEvent(event);}}

最佳回答:


 int xx = 0;
int yy = 0;

void QtTest::paintEvent(QPaintEvent*event)
{
    QPainter painter(this);
    painter.setPen(QPen(Qt::black,1));
    painter.drawRect(50+xx,50+yy,50,50);
}

void QtTest::keyPressEvent(QKeyEvent*event)
{
    switch(event->key())
    {
        case Qt::Key_A:
            xx--;break;
        case Qt::Key_D:
            xx++;break;
        case Qt::Key_W:
            yy--;break;
        case Qt::Key_S:
            yy++;break; 
    }

    repaint ();

    QWidget::keyPressEvent(event);
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved