위젯에서 여러 점을 그려야하고 그 중 일부를 선으로 연결해야하는 애플리케이션을 만들고 있습니다. 나는 QT 디자이너를 사용하여 폼을 만들었고, 예를 들어 프레임에 포인트를 그려야합니다. 위젯을 그리기 위해 paintEvent() 메서드를 다시 구현해야하고 그 문제가 있음을 읽었습니다. 내 MainForm 클래스에는 다음 코드가 있습니다.PyQt를 사용하여 위젯에서 점과 선을 그리는 방법
.........
def paintEvent(self, QPaintEvent):
paint = QtGui.QPainter()
paint.begin(self)
paint.setPen(QtCore.Qt.red)
size = self.size()
for i in range(100):
x = random.randint(1, size.width()-1)
y = random.randint(1, size.height()-1)
paint.drawPoint(x, y)
paint.end()
............
이 방법은 주 창에 점을 그립니다. 내 폼의 정확한 프레임에 paintEvent()를 그리는 방법은 무엇입니까? 그리고 또 하나의 질문 : 위의 코드가 어떤 이벤트 후에 내 창을 다시 그리기 때문에 일부 버튼 만 누르면 어떻게 만들 수 있습니까?
필자는 중요한 경우 PyQt v4.10과 Python 3.3을 사용합니다.
미리 도움을 청하십시오.
클래스 안에 클래스를 넣으시겠습니까? PaintSpace는 QT 디자이너의 QWidget 이름입니까? verticalLayoutYZ 란 무엇입니까? – jerbotron