class TimeEdit(WidgetWithTZinfo): def __init__(self, parent=None): super(TimeEdit, self).__init__(parent) self.initQTimeEdit() self.initTZinfoEdit() def initQTimeEdit(self): self.timeEdit = QDateTimeEdit(self) self.timeEdit.setKeyboardTracking(False) self.timeEdit.setDisplayFormat("hh:mm:ss.zzz") self.layout().addWidget(self.timeEdit) def time(self) -> datetime.time: time = self.timeEdit.time().toPyTime() tzinfo = self.tzinfoEdit.getObj2add() time = time.replace(tzinfo=tzinfo) return time def setTime(self, val: datetime.time): if isinstance(val, datetime.time): self.timeEdit.setTime(val) self.tzinfoEdit.setVal(val.tzinfo) else: raise TypeError("arg1 must be instance of type datetime.time", type(val))