将QMessageBox移动到屏幕的右下角



我想将QMessageBox移动到屏幕的右下角,以下是我的代码,但没有按预期工作,任何人都可以解释为什么?如何解决这里的问题?

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

def moveToBottomRight(msgBox):
    msgBox.addButton("重计", QMessageBox.ActionRole)
    msgBox.addButton("停计", QMessageBox.ActionRole)
    msgBox.addButton('继续', QMessageBox.ActionRole)
    screenGeometry = QApplication.desktop().availableGeometry()
    screenGeo = screenGeometry.bottomRight()
    msgGeo = msgBox.frameGeometry()
    msgGeo.moveBottomRight(screenGeo)
    msgBox.move(msgGeo.topLeft())

def main():
    app = QApplication(sys.argv)
    msgBox = QMessageBox()
    moveToBottomRight(msgBox)
    msgBox.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

msgBox.frameGeometry() 没有获得有效的值,这是因为没有显示消息框。您应该使用如下sizeHint()

msgGeo = QRect(QPoint(0,0), msgBox.sizeHint())

sizeHint保存小组件的建议大小。如果小部件具有布局,则其默认实现将返回布局的首选大小。

相关内容

  • 没有找到相关文章

最新更新