2012-10-15 4 views
0

게임 카드를 나타내는 다음과 같은 클래스가 있습니다. 더 많은 카드가 테이블에 표시되어 있지만 클릭하면 표의 중앙에 표시됩니다. 이제는 테이블 중앙에 이미 다른 카드가있을 수 있습니다 (센터가 100x, 100y 좌표에 있다고 가정 해 봅시다). 그렇다면 새로운 카드를 200x로 배치하고 싶습니다. 100,하지만 이미 100, 100에 뭔가가 있는지 어떻게 알 수 있습니까?움직이는 라벨 PyQt

from PyQt4 import QtGui, QtCore 

class CardLabel(QtGui.QLabel): 
    def __init__(self, *args, **kwargs): 
     QtGui.QLabel.__init__(self, *args, **kwargs) 

    def mouseReleaseEvent(self, ev): 
     print 'clicked' 
     self.emit(QtCore.SIGNAL('clicked()')) 
     self.move(100, 100) 

나는 라벨의 좌표를 반환하는 모든 QLabel의 (심지어 상속 된 부모의) 속성이나 방법을 찾을 수 없습니다. 만약 내가 할 수 있으면 어쩌면 글로벌 사전에 모든 위젯의 좌표를 기록하고 카드를 옮길 때마다 항목을 반복합니다 (가장 좋은 방법이 될지, 아니면 더 효율적인 방법이 있을까요?). QWidget에서

답변

1

QLabel 상속 그래서 x(), y(), pos() 및 기타 유사한 기능을 모두 그것을 사용할 수 있습니다. 또한 당신을 도울 수 the Window Geometry documentation 봐 수 있습니다. 테이블 중앙에 카드를 놓으면 관련된 정보로 사전 등을 업데이트 할 수 있습니다. 새로운 카드를 중앙에 놓고 싶다면 사전을 읽고 그 내용에 따라 일을하십시오.

+0

감사합니다. 빈센트, 나는 그것을 놓쳤습니다! 그러나 이미 새로운 좌표에 뭔가가 있는지 어떻게 알 수 있습니까? – Lorenzo