我有方法draw(Graphics g)

public void draw(Graphics g){
    switch(id){
        default:
            System.out.println("Please enter a valid id in contructor");
            break;
        case 1:
            g.setColor(Color.WHITE);
            g.fillRect(paddle.x, paddle.y, paddle.width, paddle.height);
            break;
        case 2:
            g.setColor(Color.LIGHT_GRAY);
            g.fillRect(paddle.x, paddle.y, paddle.width, paddle.height);
            break;
    }
}


如何为QT重写它?还是应该改用哪种方法(例如Java中的keyReleased(KeyEvent e)方法在QT中是keyReleaseEvent(QKeyEvent *e))?

最佳答案

这取决于您要绘制的内容。

如果您正在绘制QWidget,则可能是QWidget::paintEvent()

如果要绘制QGraphicsItem,则应为QGraphicsItem::paint()

同样,这些方法采用不同类型的参数。它可以分别是QPaintEventQPainter。请参考相应的文档

09-09 20:03