def bt_due_day(self,sender): global done_pushed global cancel_pushed v=sender s_y_pos=v.frame[1]+50 w=sender.superview v.due_button_pressed=True #get due day in datetime format to pre-fill datepicker with current due date due_day_datetime = datetime.strptime(sender.superview.superview.acc_list[self.idx].due_day,'%Y,%m,%d') #datepicker below account info for upper positions, and above for lower positions. aleviated keyboard cover-up. due_date_picker= ui.DatePicker(action=None,frame=(0,(s_y_pos if s_y_pos<300 else s_y_pos-150) ,300,100),mode=ui.DATE_PICKER_MODE_DATE,background_color='white',date=due_day_datetime) w.add_subview(due_date_picker) while (not(done_pushed) and not(cancel_pushed)): sleep(0.5) w.remove_subview(due_date_picker) done_pushed = False if cancel_pushed==True: cancel_pushed=False return #'Done' was pushed: update gui due_pick_str= date.strftime(due_date_picker.date,'%Y,%m,%d') v.title=(due_pick_str) #save to acc_list acc_list= sender.superview.superview.acc_list acc_list[self.idx].due_day= due_pick_str
def show_datepicker(self, mode): ui.end_editing() self.shield_view = ui.View() self.shield_view.flex = 'WH' self.shield_view.frame = (0, 0, self.view.width, self.view.height) self.dismiss_datepicker_button = ui.Button() self.dismiss_datepicker_button.flex = 'WH' self.dismiss_datepicker_button.frame = (0, 0, self.view.width, self.view.height) self.dismiss_datepicker_button.background_color = (0, 0, 0, 0.5) self.dismiss_datepicker_button.action = self.dismiss_datepicker self.dismiss_datepicker_button.alpha = 0.0 self.shield_view.add_subview(self.dismiss_datepicker_button) self.date_picker = ui.DatePicker() self.date_picker.date = self.selected_date_value self.date_picker.background_color = 'white' self.date_picker.mode = mode self.date_picker.frame = (0, self.shield_view.height - self.date_picker.height, self.shield_view.width, self.date_picker.height) self.date_picker.flex = 'TW' self.date_picker.transform = ui.Transform.translation( 0, self.date_picker.height) self.shield_view.add_subview(self.date_picker) self.container_view.add_subview(self.shield_view) def fade_in(): self.dismiss_datepicker_button.alpha = 1.0 self.date_picker.transform = ui.Transform.translation(0, 0) ui.animate(fade_in, 0.3)
def make_view(self): obj = ui.DatePicker(name = 'dp') if self.date: obj.date = self.date obj.mode = ui.DATE_PICKER_MODE_DATE obj.frame = self.frame obj.flex = 'WH' self.add_subview(obj) self.dp = obj
def __init__(self, mode=ui.DATE_PICKER_MODE_DATE, title='', done_button_title='Done'): self.was_canceled = True self.container_view = ui.View(background_color='white') self.view = ui.DatePicker() self.container_view.name = title self.view.mode = mode self.view.background_color = 'white' self.view.frame = (0, 0, 500, 500) self.view.flex = 'WH' self.container_view.frame = self.view.frame self.container_view.add_subview(self.view)
def __init__(self): self.file = "app.dat" self.loadData() self.v = ui.View(name="bloodApp") self.v.background_color = 'white' self.v.left_button_items = ui.ButtonItem( title='sugar', action=self.switchBs), ui.ButtonItem(title='BP', action=self.switchBp) self.v.right_button_items = ui.ButtonItem(title='save', action=self.save), self.timePick = ui.DatePicker(name="timePick") self.timePick.mode = ui.DATE_PICKER_MODE_DATE_AND_TIME self.table = ui.TableView(name="Table") self.table.data_source = self self.table.background_color = (1, 1, 1, 1) self.table.border_color = (0, 0, 0, 1) self.table.row_height = 30 self.table.flex = "WH" self.table.border_width = 1 self.table.corner_radius = 1 self.table.frame = (0, 200, 320, 272) self.value = ui.TextField(name="value") self.value.keyboard_type = ui.KEYBOARD_PHONE_PAD self.value.clear_button_mode = 'always' self.value.x = 0 self.value.y = 0 self.value.width = 120 self.value.height = 38.5 self.value.background_color = (1, 1, 1, 1) self.value.border_color = (0, 0, 0, 1) self.value.border_width = 1 self.value.corner_radius = 2 self.value.alignment = ui.ALIGN_LEFT self.value.enabled = 1 self.value.placeholder = 'blood sugar' self.v.add_subview(self.timePick) self.v.add_subview(self.table) self.v.add_subview(self.value) self.state = "bs" self.switch() self.table.reload() self.v.present("fullscreen")
def make_time_view(): v = ui.View(frame=(0, 0, sz[0], sz[1] - banner)) v.name = 'time' v.background_color = 'white' done = ui.ButtonItem('Schedule') v.right_button_items = [done] tab = ui.TableView() tab.frame = (0, 0, sz[0], 150) lst = ui.ListDataSource(['time 1', 'time 2']) tab.data_source = lst tab.delegate = lst v.add_subview(tab) wid = 120 custip = ui.TextField() custip.frame = (20 + wid, 160, sz[0] - wid - 30, 36) custip.clear_button_mode = 'while_editing' custip.text = '1' custip.keyboard_type = ui.KEYBOARD_NUMBER_PAD custip.delegate = MyTextFieldDelegate(done) v.add_subview(custip) label = ui.Label() label.text = 'Number of runs' label.frame = (10, 160, wid + 10, 36) v.add_subview(label) custip = ui.TextField() custip.frame = (20 + wid, 206, sz[0] - wid - 30, 36) custip.clear_button_mode = 'while_editing' custip.text = '24' custip.keyboard_type = ui.KEYBOARD_DECIMAL_PAD custip.delegate = MyTextFieldDelegate(done) v.add_subview(custip) label = ui.Label() label.text = 'Length (hours)' label.frame = (10, 206, wid + 10, 36) v.add_subview(label) dt = ui.DatePicker() dt.frame = (0, 240, sz[0], sz[1] - 240) v.add_subview(dt) return v
sc1.action = seg1_selected v.add_subview(sc1) sc2 = ui.SegmentedControl(frame=(32, 196, 350, 42)) sc2.segments = ('12 Hr Clock', '24 Hr Clock') # Default to 12 hr clock sc2.selected_index = 0 sc2.border_width = 2 sc2.corner_radius = 10 sc2.tint_color = 'black' sc2.background_color = 'yellow' sc2.flex = 'WHLRTB' sc2.action = seg2_selected v.add_subview(sc2) dp = ui.DatePicker(frame=(32, 246, 350, 216)) dp.border_width = 2 dp.corner_radius = 10 dp.tint_color = 'black' dp.background_color = 'yellow' dp.flex = 'WHLRTB' dp.mode = 2 dp.action = change_date v.add_subview(dp) lb1 = ui.Label(frame=(32, 470, 350, 53)) lb1.font = ('<system-bold>', 16) # Sync label display with date picker lb1.text = change_date(dp) lb1.border_width = 2 lb1.corner_radius = 10
class MyClass2(ui.View): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.make_view() def make_view(self): pass if __name__ == '__main__': db_filename = 'myviews.json' f = (0, 0, 300, 400) v = MyClass(frame=f) v.present(style='sheet', animated=False) v2 = MyClass2(name='MyClass2', bg_color='purple', frame=f) save_view(db_filename, 'myClass', ui.dump_view(MyClass())) save_view(db_filename, 'myClass2', ui.dump_view(v2)) v3 = get_saved_view(db_filename, key='myClass2') v3.present('sheet') v3.wait_modal() v3.bg_color = 'orange' v3.title = 'Orange View' v3.add_subview(ui.DatePicker()) save_view(db_filename, 'myClass2', ui.dump_view(v3)) v4 = get_saved_view(db_filename, key='myClass2') v4.present('sheet')
def __init__(self, mview, ex_obj, *args, **kwargs): super().__init__(self, frame=(0, 0, mview.width * 0.8, mview.height * 0.8), *args, **kwargs) self.val_btns = [] # Store value button field self.set_btns = [] # Store set button field self.set = 0 # Store index of current set button self.ex_obj = ex_obj # Store reference to selected exercise # Datepicker to modify timestamp self.datepicker = ui.DatePicker() self.datepicker.background_color = "white" self.datepicker.action = self.datepicker_action self.add_subview(self.datepicker) # Show infolabel label self.lbl = ui.Label() self.lbl.background_color = "white" self.lbl.text = f"{self.ex_obj.group}: {self.ex_obj.name} {self.datepicker.date:%Y-%m-%d %H:%M:%S}" self.lbl.alignment = ui.ALIGN_CENTER self.lbl.font = ('arial', 24) self.add_subview(self.lbl) # Textfield for additional value if applicable self.tf = ui.TextField() self.tf.background_color = "white" self.tf.text = str(ex_obj.default) self.tf.alignment = ui.ALIGN_CENTER self.tf.font = ('arial', 24) if ex_obj.unit == "kg": self.tf.hidden = False else: self.tf.hidden = True self.add_subview(self.tf) # Create set buttons (max. 3 sets per ecercise) for i in range(0, 3): btn = ui.Button() btn.name = str(i) btn.background_color = "#fdffd8" btn.border_color = "black" btn.border_width = 2 btn.title = "0" btn.action = self.btn_set_action self.set_btns.append(btn) self.add_subview(btn) # Highlight first set button (as selected) self.set_btns[0].background_color = "#faff8d" # Create value buttons for i in range(ex_obj.min, ex_obj.max + 1, ex_obj.step): btn = ui.Button(title=str(i)) btn.background_color = "white" btn.corner_radius = 6 btn.action = self.set_val self.val_btns.append(btn) self.add_subview(btn) # Abort logging self.btn_cancel = ui.Button() self.btn_cancel.background_color = "white" self.btn_cancel.corner_radius = 9 self.btn_cancel.title = 'Cancel' self.btn_cancel.action = self.button_cancel_action self.add_subview(self.btn_cancel) # Save log to database self.btn_save = ui.Button() self.btn_save.background_color = "white" self.btn_save.corner_radius = 9 self.btn_save.title = 'Save' self.btn_save.action = self.button_save_action self.add_subview(self.btn_save)
# etc... For day, hour, minute and so forth. # -------------------- import ui my_date = None def date_picker_action(sender): my_date = sender.date print(my_date) view = ui.View() date_picker = ui.DatePicker() date_picker.action = date_picker_action view.add_subview(date_picker) view.present('sheet') # -------------------- def calndr(sender): date = sender.superview['calender'] # assuming that is the name of your DatePicker object # this returns a datetime.datetime object, see module datetime year = date.year month = date.month with open('newfile.csv', "a") as f: newfileWriter = csv.writer(f)
def __init__(self, *args, **kwargs): super().__init__(self, *args, **kwargs) self.shows_result = False self.bounds = (0, 0, 400, 400) self.background_color = 'white' self.today = date.today() self.isWidget = True self.reminders_view = ui.TableView() self.reminders_view.data_source = ReminderHandler(self) self.reminders_view.delegate = self.reminders_view.data_source self.reminders_view.allows_selection = True self.add_subview(self.reminders_view) weekday = self.today.weekday() weekdays = ['M', 'T', 'W', 'T', 'F', 'S', 'S'] self.button_view = ui.ScrollView() self.button_view.background_color = 'lightgray' self.add_subview(self.button_view) self.colour_view = ui.ScrollView() self.colour_view.background_color = 'white' self.choose_colour_view = ui.ScrollView() self.choose_colour_view.background_color = 'white' self.top_bar = ui.View() self.top_bar.background_color = 'white' self.add_subview(self.top_bar) self.input_view = ui.View() self.input_view.background_color = 'white' self.add_subview(self.input_view) button_style = {'background_color': (1, 0, 0, 1), 'tint_color': 'white', 'font': ('HelveticaNeue-Light', 18), 'corner_radius': 3, 'border_width': 1.5} weekdays_wrapped = weekdays[weekday:] + weekdays[:weekday] button_list = weekdays_wrapped + [str((self.today + timedelta(days=n)).day) for n in range(7, 30 if self.today.month in [4, 6, 9, 11] else 31)] remember_button = ui.Button(image=ui.Image.named('typw:Edit'), action=self.remember_button_pressed, name=str('Remember'), **button_style) self.date_buttons = [remember_button] self.button_view.add_subview(remember_button) for i, d in enumerate(button_list): b = ui.Button(title=d, action=self.date_button_pressed, name=str(i), **button_style) self.date_buttons.append(b) self.button_view.add_subview(b) self.repeat_buttons = [] for i, d in enumerate(weekdays): b = ui.Button(title=d, action=self.repeat_button_pressed, name=str(i), **button_style) self.repeat_buttons.append(b) self.input_view.add_subview(b) self.colour_buttons = [] for i, c in enumerate(self.reminders_view.data_source.all_colours): b = ui.Button(title='✓', action=self.colour_button_pressed, name=str(i), **button_style) b.background_color = c b.tint_color = get_text_colour(b.background_color) self.colour_buttons.append(b) self.colour_view.add_subview(b) self.choose_colour_buttons = [] for i, c in enumerate(self.reminders_view.data_source.all_colours): b = ui.Button(title='✓' if i == 0 else '', action=self.choose_colour_button_pressed, name=str(i), **button_style) b.background_color = c b.tint_color = get_text_colour(b.background_color) self.choose_colour_buttons.append(b) self.choose_colour_view.add_subview(b) self.edit_button = ui.Button(title='Edit', action=self.edit_button_pressed, **button_style) self.top_bar.add_subview(self.edit_button) self.top_bar.add_subview(self.colour_view) self.name_input = ui.TextField() self.name_input.delegate = NameInputDelegate(self) self.name_input.corner_radius = 4 self.name_input.clear_button_mode = 'while_editing' self.name_input.autocapitalization_type = ui.AUTOCAPITALIZE_WORDS self.date_picker = ui.DatePicker() self.input_view.add_subview(self.date_picker) self.date_picker.hidden = True self.date_picker.mode = ui.DATE_PICKER_MODE_DATE self.repeat_end_date_picker = ui.DatePicker() self.input_view.add_subview(self.repeat_end_date_picker) self.repeat_end_date_picker.hidden = True self.repeat_end_date_picker.mode = ui.DATE_PICKER_MODE_DATE self.repeat_end_date_label = ui.Label(text='End Date:', font=('HelveticaNeue-Light', 18)) self.input_view.add_subview(self.repeat_end_date_label) self.input_view.add_subview(self.choose_colour_view) self.input_view.add_subview(self.name_input) self.input_view.background_color = (1, 1, 1) self.input_view.hidden = True self.daysAway = 0
d += datetime.timedelta(days = -7 ) cdp = CustomDatePicker(frame = f , bg_color = 'orange', date = d, name ='Please select a date') cdp.present('sheet') cdp.wait_modal() print cdp.dp.date # -------------------- class _DateDialogController (object): def __init__(self, mode=ui.DATE_PICKER_MODE_DATE, title='', done_button_title='Done'): self.was_canceled = True self.container_view = ui.View(background_color='white') self.view = ui.DatePicker() self.container_view.name = title self.view.mode = mode self.view.background_color = 'white' self.view.frame = (0, 0, 500, 500) self.view.flex = 'WH' self.container_view.frame = self.view.frame self.container_view.add_subview(self.view) # -------------------- import ui dp = ui.DatePicker(name = 'test') dp.present('sheet') # --------------------
lbl_pick_end.background_color = 'yellow' lbl_pick_end.text = 'Time' dp.add_subview(lbl_pick_end) lbl_tpassed = ui.Label(frame=(105, 675, 200, 35)) lbl_tpassed.flex = 'HLRTB' lbl_tpassed.font = ('<system-bold>', 14) lbl_tpassed.alignment = ui.ALIGN_CENTER lbl_tpassed.border_width = 2 lbl_tpassed.corner_radius = 10 lbl_tpassed.background_color = 'yellow' lbl_tpassed.text_color = 'red' lbl_tpassed.text = '00:00:00' dp.add_subview(lbl_tpassed) dp_start = ui.DatePicker(frame=(48, 85, 320, 225)) dp_start.flex = 'HLRTB' dp_start.border_width = 2 dp_start.corner_radius = 10 dp_start.background_color = 'yellow' dp_start.mode = ui.DATE_PICKER_MODE_TIME dp_start.action = change_start_time dp.add_subview(dp_start) dp_end = ui.DatePicker(frame=(48, 405, 320, 225)) dp_end.flex = 'HLRTB' dp_end.border_width = 2 dp_end.corner_radius = 10 dp_end.background_color = 'yellow' dp_end.mode = ui.DATE_PICKER_MODE_TIME dp_end.action = change_end_time