def init(self): self.box = [] with flx.VBox( flex=1, style='border:2px solid gray;border-radius: 5px;text-align:left' ): with flx.HFix(flex=1, style='text-align:left'): flx.Label(text='Testpmd args:') self.cb_as = flx.CheckBox(text="auto-start") self.cb_crc = flx.CheckBox(text="disable-crc-strip") self.cb_fia = flx.CheckBox(text="flow-isolate-all") with flx.HBox(flex=1): ui.Label(text='--rxq:', flex=0) self.rxq = ui.LineEdit(text='1', flex=1) ui.Label(flex=1, text='') ui.Label(text='--rxd:', flex=0) self.rxd = ui.LineEdit(text='64', flex=1) ui.Label(flex=1, text='') ui.Label(text='--txq:', flex=0) self.txq = ui.LineEdit(text='1', flex=1) ui.Label(flex=1, text='') ui.Label(text='--txd:', flex=0) self.txd = ui.LineEdit(text='64', flex=1) ui.Label(flex=1, text='') ui.Label(text='--hairpin:', flex=0) self.hairpin = ui.LineEdit(text='0', flex=1) with flx.HFix(flex=1, style=' text-align:left'): self.cmdline = ui.Label(text='testpmd cmdline:', flex=10) self.start = flx.Button(text='start', flex=1)
def init(self): with ui.VBox(): with ui.HFix(flex=1): with ui.VBox(flex=2): ui.Label(text='Resolution (dpi): ') ui.Label(text='Serial port: ') ui.Label(text='Serial baudrate: ') ui.Label(text='Steps per mm (x, y): ') ui.Label(text='Speed in mm/s (fast, engrave): ') ui.Label(text='Burnin time in ms: ') with ui.VBox(flex=1): self.resolution_widget = ui.LineEdit(title='resolution') self.serial_port_widget = ui.LineEdit(title='serial_port') self.serial_baudrate_widget = ui.LineEdit( title='serial_baudrate') with ui.HBox(): self.x_steps_widget = ui.LineEdit( title='x_steps_per_mm') self.y_steps_widget = ui.LineEdit( title='y_steps_per_mm') with ui.HBox(): self.fast_speed_widget = ui.LineEdit( title='fast_movement_speed') self.engrave_speed_widget = ui.LineEdit( title='engraving_movement_speed') self.burnin_time_widget = ui.LineEdit(title='burnin_time') ui.Widget(flex=1)
def init(self): with ui.VBoxLayout(): with ui.FormLayout(spacing=1): ui.Label(self, 'Name') self._name = ui.LineEdit(self) ui.Label(self, 'Age') self._age = ui.LineEdit(self) with ui.HBoxLayout(): ui.Widget(flex=1) # spacer ui.Button(tex'Cancel', flex=0) ui.Button(self, 'Ok', on_click=self.process, flex=0)
def init(self): with ui.VBox(): with ui.HFix(): ui.Label(text="Port:", flex=2) iface = self.root.pnl_config.get_section_config("common", "iface", "lo") self.lst_ifnames = ui.ComboBox(editable=False, options=ifnames, selected_key=iface, flex=2) ui.Label(text=" ", flex=3) ui.Label(text='Count:', flex=2) self.txt_count = ui.LineEdit(text='1', flex=2) ui.Label(text=" ", flex=3) ui.Label(text='Interval(ms):', flex=3) self.txt_interval = ui.LineEdit(text='0', flex=2) ui.Label(text=" ", flex=3) self.btn_send = ui.Button(text='(S)end', flex=2)
def init(self): with ui.HBox(): ui.Widget(flex=1) with ui.VBox(): self.name = ui.LineEdit(placeholder_text='your name') self.people = ui.Label(flex=1, base_size=(250, 0)) with ui.VBox(): self.messages = MessageBox(flex=1) with ui.HBox(): self.message = ui.LineEdit( flex=1, placeholder_text='enter message') self.ok = ui.Button(text='Send') ui.Widget(flex=1) self._update_participants()
def init(self): with ui.HBox(title='Flexx chatroom demo'): ui.Widget(flex=1) with ui.VBox(): self.name_edit = ui.LineEdit(placeholder_text='your name') self.people_label = ui.Label(flex=1, style='min-width: 250px') with ui.VBox(style='min-width: 450px'): self.messages = MessageBox(flex=1) with ui.HBox(): self.msg_edit = ui.LineEdit( flex=1, placeholder_text='enter message') self.ok = ui.Button(text='Send') ui.Widget(flex=1) self._update_participants()
def init(self): with ui.VBox(): ui.HBox(flex=1) with ui.HBox(flex=0): self.raw_command = ui.LineEdit(flex=3, placeholder_text='e.g. XA1000') ui.HBox(flex=4)
def init(self): with ui.VBox(): ui.HBox(flex=1) with ui.HBox(flex=0): self.gcode_line = ui.LineEdit( flex=3, placeholder_text='e.g. G01 Y10 Y2 Z-1') ui.HBox(flex=4)
def init(self, py): self.py = py self.file_name = flx.StringProp('') self.file_input = FileInput() with flx.VBox(): flx.Label(style="background:#cfc;", wrap=1, text="") with flx.HSplit(flex=1): with flx.VBox(style="border:1px solid #777;", ): flx.Label(text="Properties Tree") self.tree = TreeWithControls(py, flex=1, max_selected=1) with flx.VBox(style="border:1px solid #777;"): flx.Label(text="Property", style="") with flx.VBox(flex=1): with flx.VBox(flex=1, style=""): self.combo = ui.ComboBox(editable=True, options=()) self.field = ui.LineEdit( placeholder_text="type here") with flx.HBox(flex=1, style="max-height: 20px;"): self.pick_file = ui.Button(text='...') self.do_upload = ui.Button(text='Upload', disabled=True) with flx.VBox(flex=5): flx.Label(text="Info", style="") self.info = flx.Label( text="", style="white-space: pre-line;") with flx.VBox(style="border:1px solid #777;", flex=1): flx.Label(text="Raw", style="") self.rawLabel = flx.Label( text="", style="white-space: pre-line;") self.update_btn = ui.Button(text="Apply", style="width: 100px;")
def init(self): with ui.VBox(): self.line = ui.LineEdit(flex=(0.5, 0.5), placeholder_text='type here', autocomp=['foo', 'bar']) ui.Label(flex=0, text='copy:') self.label = ui.Label(flex=1)
def init(self): ui.Label( text= 'Refreshing the page should maintain the value of the line edit.') self.edit = ui.LineEdit(placeholder_text='username', text=self.session.get_cookie('username', ''))
def init(self): self.box = [] with flx.VBox(flex=1, title='EAL args', style='border:2px solid gray;border-radius: 5px'): with flx.HBox(): ui.Label(flex=1, text='EAL args: ') ui.Label(flex=0, text='--master-lcore:') self.mc = ui.LineEdit(flex=2, text='0') ui.Label(flex=1, text='') ui.Label(flex=0, text=" -c COREMASK:") self.cm = ui.LineEdit(flex=2, text='0xff') ui.Label(flex=1, text='') ui.Label(flex=0, text=' --file-prefix:') self.fp = ui.LineEdit(flex=2, text='/tmp/') self.nohp = flx.CheckBox(flex=2, text='--no-huge') self.hpunlink = flx.CheckBox(flex=2, text='--huge-unlink')
def init(self): self.box = [] with flx.VBox(flex=1, style='border:2px solid gray;border-radius: 5px'): flx.Label(text='Add flow', flex=1, style='text-align:center') with flx.HBox(style='border:2px solid gray;border-radius: 5px'): ui.Label(text='attr:') self.attr = ui.ComboBox(editable=True, selected_key='ingress', options=('ingress', 'egress', 'transfer')) ui.Label(text='port_id:') self.port_id = ui.LineEdit(text='0') ui.Label(text='group:') self.group_id = ui.LineEdit(text='1') self.item = ItemBox() self.action = ActionBox()
def init(self): with ui.HBox(): ui.Widget(flex=1) with ui.VBox(): self.name = ui.LineEdit(placeholder_text='your name') self.people = ui.Label(flex=1, base_size=(250, 0)) with ui.VBox(): self.messages = MessageBox(flex=1) with ui.HBox(): self.message = ui.LineEdit( flex=1, placeholder_text='enter message') self.ok = ui.Button(text='Send') ui.Widget(flex=1) # Pipe messages send by the relay into this app relay.connect(self._push_info, 'new_message:' + self.id) self._update_participants()
def init(self): with ui.VBox(): with ui.HBox(): self.first_edit = ui.LineEdit(placeholder_text='first name', text='Jane') self.last_edit = ui.LineEdit(placeholder_text='last name', text='Doe') ui.Widget(flex=1) # spacer with ui.HBox(): ui.Label(text=lambda: self.root.first_name, style='border:1px solid red') ui.Label(text=lambda: self.root.last_name, style='border:1px solid red') ui.Widget(flex=1) # spacer MyPersonLabel(style='border:1px solid blue') ui.Widget(flex=1) # spacer
def init(self): with ui.TabLayout(): self.encrypt = ui.Widget(title='加密') with self.encrypt: with ui.FormLayout(): self.l1 = ui.Label(text='请输入需加密的文本:') self.e1 = ui.LineEdit(title='', text='') self.l2 = ui.Label(text='请输入加密密匙:') self.e2 = ui.LineEdit(title='', text='', password_mode=True) self.l3 = ui.Label(text='请再输入一次加密密匙:') self.e3 = ui.LineEdit(title='', text='', password_mode=True) self.b1 = ui.Button(text='提交') self.l4 = ui.Label(text='') self.l5 = ui.Label(text='') ui.Widget(flex=1) self.decrypt = ui.Widget(title='解密') with self.decrypt: pass
def init(self): self.pattern = "pattern " with flx.VBox(flex=1, style='border:2px solid gray;border-radius: 5px'): with flx.HBox(flex=0): ui.Label(text='pattern:') self.item = ui.ComboBox(editable=True, selected_key='eth', options=('eth', 'ipv4', 'ipv6', 'tcp', 'udp', 'vlan', 'vxlan', 'tag')) self.al = ui.Label(text='src:') self.av = ui.LineEdit(text='1') self.am = ui.Label(text='src_mask:') self.amv = ui.LineEdit(text='1') self.bl = ui.Label(text='dst:') self.bv = ui.LineEdit(text='1') self.bm = ui.Label(text='dst_mask:') self.bmv = ui.LineEdit(text='1') self.add = flx.Button(text='add') self.cl = flx.Button(text='clear') with flx.HBox(): self.showitem = ui.Label(text="No pattern")
def init(self): with ui.HFix(): with ui.FormLayout() as self.form: self.b1 = ui.LineEdit(title='Name:', text='Hola') self.b2 = ui.LineEdit(title='Age:', text='Hello world') self.b3 = ui.LineEdit(title='Favorite color:', text='Foo bar') with ui.FormLayout() as self.form: self.b4 = ui.LineEdit(title='Name:', text='Hola') self.b5 = ui.LineEdit(title='Age:', text='Hello world') self.b6 = ui.LineEdit(title='Favorite color:', text='Foo bar') ui.Widget(flex=1) # Add a flexer
def init(self): with ui.HBox(style='width: 480px'): with ui.VBox(style='height: 200px'): with ui.HBox(): self.temps = [ ui.Label( text='??°', style='font-weight: bold; font-size: xx-large'), ui.Label( text='??°', style='font-weight: bold; font-size: xx-large') ] with ui.HBox(): ui.Label(text="{} <= ".format(self.min_duty)) self.duty_edit = ui.LineEdit(text=self.init_duty) ui.Label(text=" <= {}".format(self.max_duty)) with ui.HBox(): self.duty_slider = ui.Slider(flex=1, min=self.min_duty, max=self.max_duty, step=10) # Relay global info into this app relay.connect(self.push_info, 'system_info:' + self.id)
def init(self): self.fields = {} self.radio_buttons = {} self.result_property = {} self.slider_to_textfield = {} self.textfield_to_slider = {} self.int_sliders = set() self.sliders = [] with ui.GroupWidget(title="Simulation parameter"): ui.Label(text="scroll down to start", style="float: right; color: steelblue", wrap=True) for parameter, value in list(parameter_mask.items()): try: title = names[parameter] except KeyError: title = parameter if isinstance(value, bool): self.fields[parameter] = ui.CheckBox(text=title) self.result_property[parameter] = 'checked' elif isinstance(value, list): self.radio_buttons[parameter] = {} with ui.GroupWidget(title=title, style="width:fit-content;"): for option in value: self.radio_buttons[parameter][option] = \ ui.RadioButton(text=option) self.radio_buttons[parameter][value[0]].checked = True else: if isinstance(value, tuple): min_value, default, max_value = sorted(value) elif isinstance(value, (int, float)): min_value, default, max_value = 0, value, value * 2 is_integer = False if isinstance(value, (int, float, tuple)): if (isinstance(default, int) and isinstance(max_value, int)): step = 1 is_integer = True # if default is float, type is float if isinstance(default, float): step = (max_value - min_value) / 100 else: step = (max_value - min_value) / 100 with ui.Widget(): ui.Label(text=title, wrap=True) slider = ui.Slider(min=min_value, max=max_value, value=default, step=step) lineeditor = ui.LineEdit(title=title, text=default) self.sliders.append((slider, lineeditor)) self.fields[parameter] = slider self.result_property[parameter] = 'value' slider.connect('value', self.stt) lineeditor.connect('submit', self.tts) self.slider_to_textfield[slider] = lineeditor self.textfield_to_slider[lineeditor] = slider if is_integer: self.int_sliders.add(slider) elif isinstance(value, str): with ui.Widget(): ui.Label(text=title, wrap=True, style="width: 80%") self.fields[parameter] = \ ui.LineEdit(title=title, text=value, style='width: 95%;') self.result_property[parameter] = 'text' elif value is None: ui.Label(text=title, wrap=True) else: # field print(str(value) + "not recognized") with ui.VBox(): self.btn = ui.Button(text="start simulation") with ui.GroupWidget(title="Save"): with ui.HBox(): self.name = ui.LineEdit(title="Name:", placeholder_text='name') self.save = ui.Button(text="Save Parameters") self.description = ui.LineEdit( title="Description", text='', style='width: 95%;', placeholder_text='description')
def init(self): #self.b0 = ui.Button(self, 'This is behind the box layout') TEST = 11 if TEST == 0: ui.Button(text='Hola', flex=1) if TEST == 1: with ui.BoxPanel(flex=1) as self.hbox1: # self.b1 = ui.Widget(flex=1, style='background: #a22;', min_size=(100, 100), max_size=(500,0)) # self.b2 = ui.Widget(flex=0, style='background: #2a2;', min_size=(100, 0), max_size=(500,0)) # self.b3 = ui.Widget(flex=0, style='background: #22a;', min_size=(100, 0), max_size=(500,0)) # self.b4 = ui.Widget(flex=1, style='background: #aaa;', min_size=(100, 0), max_size=(500,0)) self.b1 = ui.Widget(flex=1, style='background: #a22; min-width:100px; max-width:500px') self.b2 = ui.Widget(flex=0, style='background: #2a2; min-width:100px; max-width:500px') self.b3 = ui.Widget(flex=0, style='background: #22a; min-width:100px; max-width:500px') self.b4 = ui.Widget(flex=1, style='background: #aaa; min-width:100px; max-width:500px') if TEST == 2: with self: with ui.HBox(): ui.Widget(flex=1) with ui.VBox(flex=1) as self.vbox: ui.Label(text='Flex 0 0 0', flex=0) with ui.HBox(flex=0) as self.hbox1: self.b1 = ui.Button(text='Hola', flex=0) self.b2 = ui.Button(text='Hello world', flex=0) self.b3 = ui.Button(text='Foo bar', flex=0) ui.Label(text='Flex 1 0 3', flex=0) with ui.HBox(flex=0) as self.hbox2: self.b1 = ui.Button(text='Hola', flex=1) self.b2 = ui.Button(text='Hello world', flex=0) self.b3 = ui.Button(text='Foo bar', flex=3) ui.Label(text='margin 20 (around layout)', flex=0) with ui.HBox(flex=0, margin=20) as self.hbox3: self.b1 = ui.Button(text='Hola', flex=1) self.b2 = ui.Button(text='Hello world', flex=1) self.b3 = ui.Button(text='Foo bar', flex=1) ui.Label(text='spacing 20 (inter-widget)', flex=0) with ui.HBox(flex=0, spacing=20) as self.hbox3: self.b1 = ui.Button(text='Hola', flex=1) self.b2 = ui.Button(text='Hello world', flex=1) self.b3 = ui.Button(text='Foo bar', flex=1) ui.Widget(flex=1) ui.Label(text='Note the spacer Widget above', flex=0) if TEST == 3: with ui.HBox(spacing=20): with ui.FormLayout() as self.form: # e.g. self.b1 = ui.Button(label='Name', text='Hola') self.b1 = ui.Button(title='Name:', text='Hola') self.b2 = ui.Button(title='Age:', text='Hello world') self.b3 = ui.Button(title='Favorite color:', text='Foo bar') with ui.FormLayout() as self.form: # e.g. self.b1 = ui.Button(label='Name', text='Hola') ui.Widget(flex=1) # Add a flexer self.b1 = ui.Button(title='Name:', text='Hola') self.b2 = ui.Button(title='Age:', text='Hello world') self.b3 = ui.Button(title='Favorite color:', text='Foo bar') ui.Widget(flex=1) if TEST == 4: with ui.GridPanel() as self.grid: self.b1 = ui.Button(text='No flex', pos=(0, 0)) self.b2 = ui.Button(text='Hola', pos=(1, 1), flex=(1, 1)) self.b3 = ui.Button(text='Hello world', pos=(2, 2), flex=(2, 1)) self.b4 = ui.Button(text='Foo bar', pos=(4, 4), flex=(1, 2)) self.b5 = ui.Button(text='no flex again', pos=(5, 5)) if TEST == 5: with ui.SplitPanel(): ui.Widget(style='background:#aaa;') with ui.PinboardLayout() as self.grid: self.b1 = ui.Button(text='Stuck at (20, 20)', pos=(20, 30)) self.b2 = ui.Button(text='Dynamic at (20%, 20%)', pos=(0.2, 0.2)) self.b3 = ui.Button(text='Dynamic at (50%, 70%)', pos=(0.5, 0.7)) with ui.DockPanel(pos=(0.5, 0.5), size=(0.3, 0.3)) as self.d: self.a = ui.Widget(style='background:#a00;') self.b = ui.Widget(style='background:#0a0;') self.c = ui.Widget(style='background:#00a;') if TEST == 6: with ui.SplitPanel(): self.a = ui.Button(text='Right A', style='min-width:120px') self.b = ui.Button(text='Right B', style='min-width:70px') with ui.SplitPanel(orientation='v'): self.c = ui.Button(text='Right C') self.d = ui.Button(text='Right D') with ui.DockPanel(): ui.Slider(title='slider') ui.LineEdit(title='edit', text='AAA') self.g = ui.ProgressBar(title='progress', value=0.4) if TEST == 7: with ui.HBox(): ui.Button(text='Button in hbox', flex=0) with ui.SplitPanel(flex=1, orientation='v'): ui.Button(text='Button in splitter', style='min-width:100px') with ui.HBox(style='min-width:100px'): ui.Button(text='Right A', flex=0, style='background:#f00; padding:2em;') ui.Button(text='Right B', flex=1) ui.Button(text='Right C', flex=2) if TEST == 8: with ui.MenuBar(self): with ui.MenuItem(text='File'): ui.MenuItem(text='New') ui.MenuItem(text='Open') ui.MenuItem(text='Save') with ui.MenuItem(text='Edit'): ui.MenuItem(text='Cut') ui.MenuItem(text='Copy') ui.MenuItem(text='Paste') if TEST == 9: with ui.VBox(): ui.Button(text='AAA', flex=0) with ui.SplitPanel(flex=1, orientation='v'): ui.Button(text='CCC') ui.Button(text='DDD') self.e = ui.Button(text='EEE') ui.Button(text='BBB', flex=1) if TEST == 10: with ui.TabPanel(): self.a = ui.Widget(title='red', style='background:#a00;') self.b = ui.Widget(title='green', style='background:#0a0;') self.c = ui.Widget(title='blue', style='background:#00a;') if TEST == 11: with ui.BoxPanel(spacing=10): with ui.GridPanel() as self.g1: self.a = ui.Widget(style='background:#a00;', pos=(0, 0), flex=1) self.b = ui.Widget(style='background:#0a0;', pos=(1, 0)) self.c = ui.Widget(style='background:#00a; min-width:200px; min-height:200px', pos=(1, 1)) with ui.GridPanel() as self.g2: self.a = ui.Widget(style='background:#a00;', pos=(0, 0), flex=2) self.b = ui.Widget(style='background:#0a0; max-width:100px;', pos=(1, 0), flex=1) self.c = ui.Widget(style='background:#00a;', pos=(1, 1), flex=1) if TEST == 12: with ui.HBox(): with ui.VBox(): self.buta = ui.Button(text='red') self.butb = ui.Button(text='green') self.butc = ui.Button(text='blue') with ui.StackedPanel(flex=1) as self.stack: self.a = ui.Widget(style='background:#a00;') self.b = ui.Widget(style='background:#0a0;') self.c = ui.Widget(style='background:#00a;')
def init(self): with flx.VBox( style='border:2px solid gray;border-radius: 5px; align:left'): with flx.VBox(style='border:2px solid gray;border-radius: 5px'): with flx.HSplit(flex=1, style='text-align:left;'): ui.Label(text='vxlan encap data:') ui.Label(text='eth src:') self.eth_src = ui.LineEdit(text='0') ui.Label(text='eth dst:') self.eth_dst = ui.LineEdit(text='0') ui.Label(text='eth type:') self.eth_type = ui.LineEdit(text='0x0800') ui.Label(text='ip src:') self.ip_src = ui.LineEdit(text='0') ui.Label(text='ip dst:') self.ip_dst = ui.LineEdit(text='0') ui.Label(text='udp src:') self.udp_src = ui.LineEdit(text='0') ui.Label(text='udp dst:') self.udp_dst = ui.LineEdit(text='4789') ui.Label(text='vni:') self.vni = ui.LineEdit(text='123') with flx.HBox(): self.encap_disp = ui.Label(text='encap_data:') with flx.HSplit(): self.smacs = flx.CheckBox(text="set_mac_src", flex=2) self.smacs_v = ui.LineEdit(text='192.168.1.2', flex=2) self.smacd = flx.CheckBox(text="set_mac_dst", flex=2) self.smacd_v = ui.LineEdit(text='192.168.1.5', flex=2) self.sip4s = flx.CheckBox(text="set_ipv4_src", flex=2) self.sip4s_v = ui.LineEdit(text='192.168.1.2', flex=2) self.sip4d = flx.CheckBox(text="set_ipv4_dst", flex=2) self.sip4d_v = ui.LineEdit(text='192.168.1.5', flex=2) self.stps = flx.CheckBox(text="set_tp_src", flex=2) self.stps_v = ui.LineEdit(text='3456', flex=1) self.stpd = flx.CheckBox(text="set_tp_dst", flex=2) self.stpd_v = ui.LineEdit(text='3446', flex=1) with flx.HBox(): self.cnt = flx.CheckBox(text="count") self.decap = flx.CheckBox(text="vxlan_decap") self.encap = flx.CheckBox(text="vxlan_encap") self.stag = flx.CheckBox(text="set_tag") self.stag_v = ui.LineEdit(text='12') self.fate = ui.ComboBox(editable=True, selected_key='jump', options=('jump', 'drop', 'rss', 'queue', 'port id')) self.fate_v = ui.LineEdit(text='2') self.add = flx.Button(text='add') with flx.HBox(): self.flow_detail = ui.Label(text="Flow to be added")
def init(self): def head_table(table): with table: with ui.html.thead(): with ui.html.tr(): ui.html.th(text="track") ui.html.th(text="title") ui.html.th(text="album") ui.html.th(text="artist") with ui.html.tfoot(): with ui.html.tr(): ui.html.th(text="track") ui.html.th(text="title") ui.html.th(text="album") ui.html.th(text="artist") self.progress = ui.ProgressBar(value=0, flex=0, style="display: none;") with ui.TabPanel(flex=0.9) as self.tab: with ui.HBox(title="Search") as self.search_widget: with ui.VBox(flex=0.3): ui.Label(style="font-size: 0.5em;", text="A and B => A/B; A or B => A , B") with ui.HBox(flex=0.1): ui.Label(text="Query", flex=0) self.search_query = ui.LineEdit(text="", flex=1) self.search_button = ui.Button(text="Search", flex=0.5) with ui.HBox(flex=0.5): self.put_to_cache = ui.Button(text="Put to cache") self.select_all = ui.Button(text="Select all") self.select_none = ui.Button(text="Select none") with ui.Layout(css_class="table", flex=0.7): self.search_results = ui.html.table() head_table(self.search_results) with ui.HBox(title="Play"): with ui.VBox(flex=0.1): with ui.HBox(): ui.Label(text="cache", flex=0) self.cache_list = ui.ComboBox(editable=True, flex=1) with ui.HBox(flex=0.1): self._reset_cache = ui.Button(text="↻", flex=0.2) self.remove = ui.Button(text="🗑", flex=0.1) with ui.HBox(flex=1): self.play_button = ui.Button(text="▶☛", flex=0.2) self.show_button = ui.Button(text="☝", flex=0.1) with ui.HBox(flex=0.1): self.toggle_button = ui.ToggleButton(text="▶", flex=0.2) self.shuffle_button = ui.ToggleButton(text="🎲", flex=0.2) self.repeat_button = ui.ToggleButton(text="🔁", flex=0.1) with ui.HBox(flex=0.2): self.prev_button = ui.Button(text="⏮", flex=0.7) self.seekbackward_button = ui.Button(text="⏪", flex=0.2) self.seekforward_button = ui.Button(text="⏩", flex=0.2) self.next_button = ui.Button(text="⏭", flex=0.7) ui.Label(text="Speed") with ui.HBox(flex=0.2): self.slower = ui.Button(text="-", flex=0.7) self.playback_rate = ui.LineEdit(text="1", style="width: 2em;") self.faster = ui.Button(text="+", flex=0.7) with ui.Layout(css_class="table", flex=0.6): self.cache = ui.html.table(flex=0.5) head_table(self.cache) with ui.FormLayout(title="Cache"): self.clear_cache = ui.Button(text="Clear cache", flex=0) self.remove_cache = ui.Button(text="Remove cache", flex=0) with ui.HBox(flex=0): self.estimate = ui.Label() self.update_estimate = ui.Button(text="Update estimate") self.quota_request = ui.LineEdit(text="100") self.quota_request_button = ui.Button(text="Request quota") with ui.HBox(flex=0): self.cache_old_name = ui.Label() self.cache_new_name = ui.LineEdit(text="") self.rename_cache = ui.Button(text="Rename cache", flex=0) with ui.FormLayout(title="Config"): self.update = ui.Button(text="Update", flex=1) self._beet_url = ui.LineEdit(title="Beet url") self._beet_username = ui.LineEdit(title="Username") self._beet_password = ui.LineEdit(title="Password", password_mode=True) with ui.HBox(flex=0): self.audio = ui.html.audio(flex=1) with ui.HBox(flex=0): self.time_min = ui.Label(text="15", flex=0.1) ui.Label(text="min", flex=0.1) self.time_sec = ui.Label(text="00", flex=0.1) ui.Label(text="s", flex=0.1) self.timeminus = ui.Button(text="-1", flex=0.5) self.timeplus = ui.Button(text="+1", flex=0.5) self.run_timer = ui.ToggleButton(text="Run", flex=0.5) self.timereset = ui.Button(text="Reset", flex=0.5)
def init(self): with ui.HBox(): with ui.VBox(flex=10, orientation='vertical'): ui.Label(text='<center><b>Эксперимент автосервис</b></center>') # ui.Label(text='flex: 1, sub-flexes: 1, 2') with ui.HBox(flex=10, orientation='horizontal'): with ui.VBox(flex=2, orientation='vertical'): Panel(text='Число рабочих К:', flex=0.5) self.k = ui.LineEdit(flex=0.5, placeholder_text='K', text='') Panel(text='Шаг времени M:', flex=0.5) self.m = ui.LineEdit(flex=0.5, placeholder_text='M', text='') self.step = ui.Button(text='Шаг', flex=0.5) self.end = ui.Button(text='До конца', flex=0.5) self.exit = ui.Button(text='Выход', flex=0.5) with ui.VBox(flex=8, orientation='vertical'): self.profit = Panel( text='Общая прибыль на текущий момент:', flex=0.5) self.day = Panel(text='День:', flex=0.5) self.time = Panel(text='Время:', flex=0.5) self.count = Panel( text='Среднее число свободных рабочих', flex=0.5) with ui.HBox(flex=10, orientation='horizontal'): Panel(text='Цех1', flex=1) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) with ui.HBox(flex=0, orientation='horizontal'): self.one_count = Panel(text='Число свободных рабочих:', flex=10) self.one_profit = Panel(text='Прибыль:', flex=10) with ui.HBox(flex=10, orientation='horizontal'): Panel(text='Цех2', flex=1) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) with ui.HBox(flex=0, orientation='horizontal'): self.two_count = Panel(text='Число свободных рабочих:', flex=10) self.two_profit = Panel(text='Прибыль:', flex=10) with ui.HBox(flex=10, orientation='horizontal'): Panel(text='Цех3', flex=1) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) Panel(text='', flex=2) with ui.HBox(flex=0, orientation='horizontal'): self.three_count = Panel(text='Число свободных рабочих:', flex=10) self.three_profit = Panel(text='Прибыль:', flex=10) with ui.HBox(flex=0, orientation='horizontal'): Panel( text='<center>Очередь необработанных заявок</center>', flex=10) with ui.HBox(flex=10, orientation='horizontal'): Panel(text='A', flex=10)