Ich möchte ein Kontextmenü mit einem Menüpunkt zur Auswahl eines Datums erstellen. (Im Anwendungsfall wird ein Bündel von Elementen in einer Baumansicht ausgewählt und dann ein neues Fälligkeitsdatum für alle Elemente festgelegt.)
Da ein Menüeintrag ein Gtk.Bin ist, kann ich jedes Widget anstelle eines Labels angeben. Allerdings kann ich nicht scheinen mit dem Widget interagieren . Wenn ich irgendwo auf das Menü klicke, erhält der Menüeintrag den Klick. Also kann ich weder ein bestimmtes Datum auswählen noch Monate oder Jahre navigieren. Wie kann ich erreichen, dass der Kalender die Mausaktivität erhält?
Außerdem gibt es außen an der Außenseite des Kalenders eine zusätzliche Polsterung, und wenn man darüber schwebt, wird sie orange. Wie kann ich das Padding entfernen und / oder nicht das orange Highlight?
%Vor%[Aktualisieren]
Was ich anstrebe, ist etwas, das mit Ubuntus Datum / Uhrzeit-Kalender im Indikatormenü verwandt ist.
Wie bereits von ilius in den Kommentaren erwähnt, ist das Menü nicht dazu gedacht, ein beliebiges Widget zu halten. Es wurde auch in dieser SO-Post diskutiert. Sie müssen mit der Pop-up-Fenster-Option gehen
Das Uhr-Applet in Ubuntu, das Sie emulieren möchten, verwendet ein Popup-Fenster. Sie können dies mit xwininfo
überprüfen. Wenn Sie den Kalender angezeigt haben, dann wählen Sie ihn (für xwininfo
Dienstprogramm) können Sie sehen, dass es ein separates Fenster und nicht das gleiche wie das Panel ist.
Dies kann durch die Quelle bestätigt werden. Das Clock-Applet, welches angezeigt wird, ist eine Umschaltfläche , die aktiviert ist umschalten zeigt / versteckt das Popup-Fenster mit Kalender ( genauer gesagt, es ist ein benutzerdefiniertes Widget CalendarWindow
, das erweitert wird GtkWindow
und fügt bei Bedarf GtkCalendar
hinzu erstellt). Eine grobe Implementierung der gleichen Idee basierend auf Ihrem Code ist wie folgt (Bitte entschuldigen Sie mein begrenztes Python-Wissen):
Hoffe, das hilft!