0

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

4

1 回答 1

2

QLabel继承自QWidget所以x(),y()pos()其他类似的函数都可以使用。您还可以查看可以帮助您的 Window Geometry 文档。当您将卡片放在桌子的中心时,您可以使用相关信息更新一些字典或类似内容。如果您想在中心放置一张新卡片,只需阅读字典并根据其内容进行操作即可。

于 2012-10-15T15:38:42.927 回答