0
私は5x5の矩形を表示するコードを書いた:クリック後に矩形の色を変更する方法は?
void PrintRectangle::paintEvent(QPaintEvent *)
{
QPainter p(this);
int xpos=20;
int ypos=20;
int recWidth=50;
int recHeight=50;
int y=20;
for(int i=0; i<5; i++)
{
ypos=20;
p.fillRect(xpos,ypos,recWidth,recHeight,Qt::red);
for(int j=0; j<5; j++)
{
p.fillRect(xpos,ypos,recWidth,recHeight,Qt::red);
ypos+=60;
}
xpos+=60;
}
}
これが正常に動作します。どのようにクリックした矩形の色を変更する関数を実装するには?その矩形をリストに格納する必要がありますか?
widget.h
はい、私はそれを持っているが、私はすべての四角形、次の削除の色を保存し、別の色を作る方法を知られていません。 – lukassz
右。 update()はpaintEventを呼び出します。したがって、上記のコード(paintEvent())が更新するために再実装された場合、周期的な更新が行われる可能性が高くなります。 - sanjayのようにmousePressEventに実装するだけです。 –
@lukassz更新されたコードをチェックすると、クリックされたセルが緑色にペイントされ、他のセルは赤色にペイントされます。それがあなたの問題を解決することを願っています。解決したら、解決してください。 – sanjay