0
QPushButton 위젯을 상속받은 클래스가 있습니다. 그 버튼의 커스텀 룩을 가지고 싶기 때문에 paintEvent 메소드를 오버라이드 (override)했다. 내가 칠하고 싶은 모든 버튼은 QFrame 객체의 자손입니다.QWidget에 대한 QT paintEvent
거기에 문제가 있습니다. 나는 그 물체들을 다시 채울 수 없다.
내 paintEvent 기능 :
void Machine::paintEvent(QPaintEvent*) {
QPainter painter(this);
QRect geo = this->geometry();
int x, y, width, height;
x = geo.x()-10;
y = geo.y()-10;
width = geo.width()-3;
height = geo.height()-5;
painter.fillRect(x, y, width, height, QColor(220,220,220));
painter.drawText(x+10, y+10, "Machine " + QString::number(id));
}
위젯은 QFrame의 왼쪽 상단 모서리에, 원하는 효과는 괜찮습니다. 그러나 버튼을 다른 곳으로 옮기면 위젯이 사라지기 시작합니다. 이미지에 당신은 세드릭 볼 수 있습니다
버튼은 왼쪽-일부 픽셀을 이동 만됩니다. 왜 이런 식으로 작동합니까? 해당 버튼의 컨테이너 인 QFrame은 충분히 크다. 미리
감사)
moveEvent를 다시 구현하고 거기에서 update를 호출하면 어떻게됩니까? – koplersky