我有一个像下面这样代表游戏卡的类。桌子上显示了更多卡片,但我希望当点击一张卡片时,它会出现在桌子的中央。现在,桌子的中心可能已经有另一张牌了(假设中心在坐标 100x,100y 处)所以如果是这种情况,我想将新牌放在它旁边,比如 200x, 100 年,但我如何判断 100 年、100 年是否有东西?
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 属性(甚至在其继承的父项中),也找不到返回标签坐标的方法。如果可以的话,我可能会在全局字典中记录所有小部件的坐标,并在每次我必须移动卡片时循环遍历其项目(这是最好的方法还是有更有效的方法?)。