PyQt如何获取小部件的尺寸

15
我正在开发一个应用程序,由于某些应用程序的限制,我无法使用模态窗口。但是,在某些情况下,我想模拟弹出窗口。为此,我动态创建一个小部件,将中心小部件作为父级,并使用move()方法将其放置在所需位置。
我想知道是否有一种方法可以在给定时间获取小部件的尺寸(考虑到主窗口可以随时调整大小),以便我能够将占位符弹出窗口(一个简单的小部件)居中放置在中心小部件的中间位置。
谢谢

2
对于那些想要实际获取 QWidget 大小(内部大小)的人来说:如果你想知道窗口小部件可用空间的大小(内部空间),你需要使用 geometry,而不是 frameGeometry,因为后者会将窗口框架的大小加到小部件本身的大小上。 - mins
3个回答

40

获取 Qt 窗口部件大小的方法:

import sys
from PyQt4 import QtGui, QtCore

app = QtGui.QApplication(sys.argv)

mainWindow = QtGui.QWidget()
width = mainWindow.frameGeometry().width()
height = mainWindow.frameGeometry().height()

3
另外两个有用的参数是:.left()和.top()。 - boudewijn21

17

获取屏幕尺寸

import sys
from PyQt4 import QtGui, QtCore

app = QtGui.QApplication(sys.argv)

mainWindow = QtGui.QWidget()
screenShape = QtGui.QDesktopWidget().screenGeometry()
mainWindow.resize(self.screenShape.width(), self.screenShape.height())
mainWindow.show()

2

9
如果你没有提供一个可行的例子,那么这不是一个正确的答案。仅仅复制粘贴文档并不是一个答案。因此@subin george给出了正确的答案。 - GLHF
2
@GLHF虽然你的陈述是正确的,但OP没有提供代码。这都是理论性的;因此,我认为Avaris的理论回答也是正确的;-)) - ZF007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接