如何在 PyQt4 应用程序中获取 QToolBar 图标的坐标?

How to get coordinates of QToolBar icons in PyQt4 application?

我想知道如何将 QCalendarWidget 的位置设置在工具栏按钮的正下方。

目前,当用户点击红框内的图标按钮时,

然后下面的 Calendar() 实例被创建并且实例显示在屏幕中间。

我要实现的是下面这样。

您可以参考 here 的完整源代码。

如有任何建议或建议,我们将不胜感激。

这通常是结合使用 QWidget.geometry()QWidget.rect() 来获取小部件(在本例中为单击的按钮)的大小和位置,然后使用 QWidget.mapFromXXXQWidget.mapToXXX 系列函数,将它们转换为全局坐标,然后转换为可以馈送到 QWidget.move()

的小部件坐标

此功能已由 QDateTimeEdit 提供,因此您不需要单独的按钮:

    def init_toolbar(self):
        ...
        dtedit = QtGui.QDateTimeEdit()
        dtedit.setCalendarPopup(True)

Qt 文档:QDateTimeEdit.setCalendarPopup.