2016-04-13 14 views
1

Ich würde gerne wissen, wie Sie die Position von QCalendarWidget direkt unter dem Button von ToolBar setzen.Wie bekomme ich Koordinaten von QToolBar Icons in der PyQt4 Anwendung?

Derzeit, wenn der Benutzer ein Symbol Knopf im roten Feld klickt, enter image description here

dann die folgenden Kalender() Instanz erstellt und die Instanz in der Mitte des Bildschirms angezeigt.

enter image description here

Was ich will ist wie die folgenden implementieren.

enter image description here

können Sie vollständigen Quellcode beziehen von here.

Jeder Vorschlag oder Rat wird geschätzt.

Antwort

2

zugeführt werden kann, wird bereits von QDateTimeEdit vorgesehen, so dass Sie nicht eine separate Taste für ihn brauchen:

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

Qt Docs: QDateTimeEdit.setCalendarPopup.

+0

Vielen Dank! Die Methode, die du eingeführt hast, ist was ich will. – user1913171

1

Dies wird in der Regel mit einer Kombination aus QWidget.geometry() oder QWidget.rect() durchgeführt unter Verwendung die Größe und Position eines Widgets zu erhalten (in diesem Fall, die angeklickt Taste) und dann die QWidget.mapFromXXX und QWidget.mapToXXX Reihe von Funktionen, die in globalen zu verwandeln Koordinaten und dann in Widget-Koordinaten, die diese Funktionalität zu QWidget.move()