2016-04-13 2 views
1

Я хотел бы знать, как установить положение QCalendarWidget прямо под кнопкой ToolBar.Как получить координаты значков QToolBar в приложении PyQt4?

В настоящее время, когда пользователь нажимает на кнопку со значком внутри красной коробке, enter image description here

то экземпляр ниже календаря() создается и экземпляр отображается в центре экрана.

enter image description here

То, что я хочу реализовать, как в следующем.

enter image description here

Вы можете обратиться полный исходный код из here.

Любое предложение или совет будут оценены.

ответ

2

Эта функциональность уже обеспечивается QDateTimeEdit, так что вам не нужна отдельная кнопка для этого:

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

Qt Docs: QDateTimeEdit.setCalendarPopup.

+0

Спасибо! Метод, который вы ввели, - это то, что я хочу. – user1913171

1

Это обычно делается с помощью комбинации использования QWidget.geometry() или QWidget.rect(), чтобы получить размер и положение виджета (в данном случае, нажал кнопку), а затем с помощью ряда функций QWidget.mapFromXXX и QWidget.mapToXXX, чтобы преобразовать те в глобальные координаты, а затем в координатах виджета, который может быть подан в QWidget.move()