Gibt es einen Datepicker welcher in Kombination mit der Python Bibliothek 'urwid' eingesetzt werden kann?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
AFoeee
User
Beiträge: 11
Registriert: Montag 22. Januar 2018, 07:00

Hallo,
das Modul 'npyscreen' besitzt die beiden Widgets 'DateCombo' und 'TitleDateCombo' um Daten (Plural von Datum) auszuwählen.

Mir wurde gesagt, das die Python Bibliothek 'urwid' kein solches Kalendersteuerelement (Datepicker) besitzt, da dies auf Grund der Komplexität als eigenes Projekt anzusetzen ist.
Leider konnte ich bis jetzt keine solche Drittanbieter-Bibliothek finden.

Zwar gibt es Projekte wie 'khal', diese sind aber meist als eigenständige Anwendungen konzipiert und nicht als 'urwid'-Widgets.

Kennt jemand ein solches Projekt?
Sollte es so etwas nicht geben, mit welche Ansätze kann man das Fehlen kompensieren?


'urwid.Edit' (also ein Textfeld) hat das Problem, dass auch ungültige Daten eingegeben werden können. Zwar kann ich diese über eine Konvertierung zu 'datetime.date' und Exception-Behandlung ausfindig machen, dies ist aber sehr klobig.

Hier noch besagter 'npyscreen'-Datepicker und der dazugehörige Quellcode:

Bild

Code: Alles auswählen

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

import npyscreen

class DateForm(npyscreen.Form):
    def afterEditing(self):
        self.parentApp.setNextForm(None)

    def create(self):
        self.date = self.add(npyscreen.TitleDateCombo, name="Date")

class TestApplication(npyscreen.NPSAppManaged):
    def onStart(self):
        new_user = self.addForm("MAIN", DateForm, name="Read Date")

if __name__ == "__main__":
    TestApplication().run()
Diese Frage wurde ebenfalls in englischer Sprache auf stackoverflow gepostet.

Mit freundlichen Grüßen

AFoeee
AFoeee
User
Beiträge: 11
Registriert: Montag 22. Januar 2018, 07:00

Hallo,
noch zwei Nachträge:
  1. Ich erwähne 'khal' in meiner Frage, da ich glaube gelesen zu haben, dass dieses Projekt ebenfalls 'urwid' verwendet. (Kann allerdings falsch sein.)
  2. Den Screenshot von 'npyscreen' hatte ich beigefügt, da ich nach etwas Visuellem suche und dachte ein Bild davon wäre sinnvoll.
Mit freundlichen Grüßen

AFoeee
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du musst dir das halt selbst bauen. Ein vielleicht gangbarer Mittelweg ist die Art, wie iOS Datumsangaben erlaubt: drei drop downs mit Jahr, Monat, Tag. Das ist von der Darstellung im Ruhezustand kompakt, aber auch die Bedienung ist deutlich einfacher als bei deinem Beispiel. Einzige Komplexität: bei. Änderung von Monat oder Jahr Muss ggf der Tag angepasst werden. Wegen Schaltjahren und Monatslängen.
AFoeee
User
Beiträge: 11
Registriert: Montag 22. Januar 2018, 07:00

Hallo,

da es scheinbar keinen Datepicker für urwid gibt, habe ich einen geschrieben.

Er kann über pip installiert werden.

Für weitere Informationen siehe oben verlinkten github-Wiki-Eintrag und die originale stackoverflow-Frage.

Mit freundlichen Grüßen
AFoeee
Antworten