我已将按钮设置为移动到点(100,65),因此我猜(100,65)应该是按钮的左上角点,但是它是不。输出仍为PyQt4.QtCore.QRect(0, 0, 100, 30)
,为什么?不应该是PyQt4.QtCore.QRect(100, 65, 100, 30)
吗?
import sys
from PyQt4 import QtCore, QtGui
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.button = QtGui.QPushButton('Button', self)
self.button.move(100, 65)
self.setGeometry(300, 300, 280, 150)
print "In Window", self.button.rect()
self.show()
app = QtGui.QApplication([])
ex = Example()
sys.exit(app.exec_())
答案 0 :(得分:4)
来自doc:
此属性保存窗口小部件的内部几何图形,不包括任何窗口框架。
rect属性等于
QRect(0, 0, width(), height())
。有关Windows几何问题的概述,请参阅Window Geometry文档。
默认情况下,此属性包含一个取决于用户平台和屏幕几何的值。
QRect()
是正常的,因此您应该使用geometry()
答案 1 :(得分:0)
您需要使用QWidget::geometry
来解决您遇到的问题。