from formify.layout import * from formify.controls import * import formify def change_langauge(sender, language): formify.app.translator.language = language ui = Form( Col( ControlCombo("Mode", items=[("de", "Deutsch"), ("en", "English")], variable_name="language", on_change=change_langauge), ControlFile(), )) main_window = formify.MainWindow(ui, margin=8)
from formify.controls import ControlBase, ControlTree from PySide2 import QtWidgets, QtCore import typing import formify table = formify.controls.ControlTable(columns=["H", "B"], column_types=[int, float]) window = formify.MainWindow(formify.layout.Col( table, formify.controls.ControlButton("Print", lambda: print(table.value))), margin=8)
import formify from formify import controls, layout _boop = controls.ControlText(variable_name="Boop", value="boop") def boop(): print(_boop.value) sub_content = layout.Segment( controls.ControlCheckbox(variable_name="Box"), controls.ControlRadio(variable_name="Box2"), controls.ControlRadio(variable_name="Box3", on_change=print), ) content = layout.Segment( layout.h1("Segment"), controls.ControlCheckbox(variable_name="Checkbox"), controls.ControlText(variable_name="Text"), controls.ControlTextarea("Bla", variable_name="TextArea", on_change=print), _boop, controls.ControlButton("Make Boop", on_click=boop), controls.ControlButton("Show Sub Window", on_click=lambda: sub_content.show()), ) menu = {"Playground": {"Boop": (boop, "ctrl+b")}} formify.MainWindow(content, menu=menu, margin=8)
sidebar = SidebarContentView( { "General": SplitterCol( voltage, voltage_str, ControlFloat("Image Width", on_change=lambda _, w: set_image_width(w)), image, Row( ControlList("Drag'n drop", items=["A", "B", "C", "D", "E", "F", "G"]), ControlList("2nd List", items=["A", "B"]), ), ), "Material": material_form, "List": ListForm(Form(ControlText(variable_name="blaa"))) }, bottom_widget=logo) sidebar.sidebar.bottom_layout.setContentsMargins(7, 7, 7, 7) formify.app.allow_multiple_instances = False window = formify.MainWindow(sidebar, allowed_file_extensions=["txt", "json"], auto_run=False) window.show() formify.run()
controls.ControlCheckbox(variable_name="Checkbox"), controls.ControlText(variable_name="Text"), some_control, controls.ControlButton("Make Boop"), controls.ControlButton("Show Inspector", on_click=lambda: inspector.show()), controls.ControlButton("Hide Some Control", on_click=lambda: highlight_control(some_control)), ) content = controls.Form(content) inspector = Inspector(content) #window = formify.MainWindow(content, margin=8) master_dict = { "Top": "level", "Top 2": { "Child 1": "boop", "Child 2": { "Child Child": "boop child child" }, }, } tree = ControlTree(tree_data=master_dict) tree.value = ["Top 2", "Child 1"] tree.value = ["Top"] print(tree.value) window = formify.MainWindow(tree, margin=8)
list_form = ListForm( form, display_name_callback=lambda x: f'{x["type"]} ({x["color"]})', variable_name="list_form") def _draw(): # setup plot.fig.clear() ax = plot.fig.subplots() ax.set_aspect('equal') # plotting for data in copy.deepcopy(list_form.value): func = getattr(shapes, data.pop("type")) func(ax, **data) # show ax.plot() plot.draw() draw = formify.tools.BackgroundMethod(_draw, lazy=True) list_form.change.subscribe(draw) formify.tools.maximize(list_form) formify.MainWindow(Row(Segment( h2("Shapes"), list_form, ), plot), margin=8)
from formify.controls import * import formify def print_text(): text = ui.value["text"] if ui.value["print_mode"] == "Dialog": formify.tools.ok_dialog("Text:", text) else: print(text) def set_value(): ui.value = {'text': 'Moin GUI Runde ', 'print_mode': 'Dialog'} ui = Form( Col( Row( ControlText(variable_name="text", value="Print this text"), ControlCombo("Mode", items=["Dialog", "Print"], variable_name="print_mode"), ), ControlButton("print or show dialog", on_click=print_text), )) menu = {"Print Menu": {"print / show dialog": (print_text, "ctrl+p")}} formify.MainWindow(ui, menu=menu, margin=8)
import formify from formify import controls, layout from PySide2 import QtWidgets, QtCore qt_form_test = QtWidgets.QFormLayout() qt_form_test.setLabelAlignment(QtCore.Qt.AlignLeft) qt_form_test.setFormAlignment(QtCore.Qt.AlignLeft) qt_form_test.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow) qt_form_test.setRowWrapPolicy(QtWidgets.QFormLayout.WrapAllRows) qt_form_test.setMargin(0) qt_form_test.addRow("From Checkbox", controls.ControlCheckbox(variable_name="FormCheckbox")) qt_form_test.addWidget(controls.ControlRadio(variable_name="Form Radio 1")) qt_form_test.addWidget(controls.ControlRadio(variable_name="Form Radio 2")) qt_form_test.addRow("Another Form Label", controls.ControlText(variable_name="Text")) qt_form_test.addRow("Button", controls.ControlButton("Boop")) #qt_form_test.addItem("Button", controls.ControlText(variable_name="Button")) formify.MainWindow(layout.Segment( layout.h2("Qt From Test"), qt_form_test, ), margin=8)
from formify.controls import * from formify.layout import * import formify machine = Form( Col( ControlText(variable_name="machine_name"), Row( Col( ControlText(variable_name="material_name"), ControlFloat(variable_name="conductivity"), ControlFloat(variable_name="temperature"), ), ControlTable(variable_name="bh", columns=["H", "B"]), ), )) command = ControlText(value="machine.value") ui = Col( Segment(h2("Machine"), machine), Row(command, ControlButton("Evaluate", on_click=lambda: print(eval(command.value))))) machine.change.subscribe(print) formify.MainWindow(ui, margin=8)