• Ahab3030

    @cvp that worked great! Thanks a lot, post at night answer by morning I love this forum!

    posted in Pythonista read more
  • Ahab3030

    I am trying to make a voltage drop calculator but it keep getting an error message that a string can’t be converted to a float, and when I look in the vars the cm, and con values show up as ‘ ‘. So I am doing something wrong. Please help!

    # importing mods for equation and gui
    
    import ui
    import math
    
    # setting up view that the sub views can be inside and nameing the view
    
    view = ui.View()
    view.name = 'Voltage Drop'
    view.background_color = '#ffffff'
    
    # Variables E: voltage, L: length, I: amprage, con: conducter material, cm: circular mills of the chosen conducter.
    
    E = str()
    L = str()
    I = str()
    con = str()
    cm = str()
    
    # attempt at place holder for conductor resistence value
    
    ConLbl = ui.Label()
    ConLbl.text = con
    ConLbl.name = 'Conducter Value'
    ConLbl.x = 155
    ConLbl.y = 380
    ConLbl.width = 60
    ConLbl.height = 20
    ConLbl.border_width = 1
    view.add_subview(ConLbl)
    
    
    # variables for copper and aluminium
    
    def segment_action(sender):
        con = ConLbl.text
        if sender.selected_index == 0:
            sender.superview['Conducter Value'].text = '12.9'
        elif sender.selected_index == 1:
            sender.superview['Conducter Value'].text = '21.2'
        
    # label for conductor
    
    cLbl = ui.Label()
    cLbl.text = 'Conductor'
    cLbl.x = 140
    cLbl.y = 5
    view.add_subview(cLbl)
    
    # segmented control for conductor material
    
    cOa = ui.SegmentedControl(con)
    cOa.segments = ('Copper', 'Aluminium')
    cOa.action = segment_action
    cOa.x = 80
    cOa.y = 70
    cOa.width = 200
    view.add_subview(cOa)
    
    # label for wire gauge
    
    awgLbl = ui.Label()
    awgLbl.text = 'AWG'
    awgLbl.x = 165
    awgLbl.y = 90
    view.add_subview(awgLbl)
    
    # attempt at place holder for cm value
    
    cmLbl = ui.Label()
    cmLbl.text = cm
    cmLbl.name = 'CM Value'
    cmLbl.x = 155
    cmLbl.y = 410
    cmLbl.width = 60
    cmLbl.height = 20
    cmLbl.border_width = 1
    view.add_subview(cmLbl)
    
    # segmented control action and variables for wire gauge in AWG
    
    def segment_action2(sender):
        if sender.selected_index == 0:
            sender.superview['CM Value'].text = '4107'
        elif sender.selected_index == 1:
            sender.superview['CM Value'].text = '6530'
        elif sender.selected_index == 2:
            sender.superview['CM Value'].text = '10383'
        elif sender.selected_index == 3:
            sender.superview['CM Value'].text = '16509'
        elif sender.selected_index == 4:
            sender.superview['CM Value'].text = '26251'
        elif sender.selected_index == 5:
            sender.superview['CM Value'].text = '41740'
        elif sender.selected_index == 6:
            sender.superview['CM Value'].text = '66369'
        elif sender.selected_index == 7:
            sender.superview['CM Value'].text = '105518'
        elif sender.selected_index == 8:
            sender.superview['CM Value'].text = '133056'
        elif sender.selected_index == 9:
            sender.superview['CM Value'].text = '167780'
        elif sender.selected_index == 10:
            sender.superview['CM Value'].text = '211566'
    
    # segmented control for awg selection
    
    awg = ui.SegmentedControl(cm)
    awg.segments = ('14', '12', '10', '8', '6', '4', '2', '1/0', '2/0', '3/0', '4/0')
    awg.action = segment_action2
    awg.x = 15
    awg.y = 150
    awg.width = 350
    view.add_subview(awg)
    
    # label for voltage
    
    vLbl = ui.Label()
    vLbl.text = 'Voltage'
    vLbl.x = 160
    vLbl.y = 140
    view.add_subview(vLbl)
    
    #text feild for voltage input
    
    volts= ui.TextField(E)
    volts.x = 155
    volts.y = 200
    volts.width = 60
    volts.border_width = 1
    volts.height = 20
    view.add_subview(volts)
    
    # label for length of wire run
    
    LenLbl = ui.Label()
    LenLbl.text = 'Length'
    LenLbl.x = 160
    LenLbl.y = 200
    view.add_subview(LenLbl)
    
    # text feild input for length (L)
    
    length = ui.TextField(L)
    length.x = 155
    length.y = 260
    length.width = 60
    length.border_width = 1
    length.height = 20
    view.add_subview(length)
    
    # label for amprage
    
    ampsLbl = ui.Label()
    ampsLbl.x = 160
    ampsLbl.y = 265
    ampsLbl.text = 'Amps'
    view.add_subview(ampsLbl)
    
    #text feild input for amprage(I)
    
    amps = ui.TextField(I)
    amps.x = 155
    amps.y = 330
    amps.width = 60
    amps.height = 20
    amps.border_width = 1
    view.add_subview(amps)
    
    # label for result
    
    resLbl = ui.Label()
    resLbl.text = 'Result'
    resLbl.x = 150
    resLbl.y = 420
    view.add_subview(resLbl)
    
    
    
    # label that shows result voltage drop calc
    
    Result = ui.Label()
    Result.text = str()
    Result.x = 100
    Result.y = 500
    Result.width = 200
    Result.height = 20
    Result.border_width = 1
    view.add_subview(Result)
    
    # function for voltage drop calc performed after inputs and button pushed
    
    def button_tapped(sender):
        I = float(amps.text)
        L = float(length.text)
        E = float(volts.text)
        Result.text = (2*float(con)*float(L)*float(I))/float(cm)
    
    # button to run calc after inputs are entered
    
    button = ui.Button(frame=[150, 550, 100, 40], title='  Calculate  ')
    button.background_color=('white')
    button.action = button_tapped
    button.tint_color = ('black')
    button.border_width = 2
    view.add_subview(button)
    
    # establishing parent view for child views to present in
    
    view.present('fullscreen') ```

    posted in Pythonista read more
  • Ahab3030

    That worked! Thanks everyone I can’t believe how fast you all provided help.

    posted in Pythonista read more
  • Ahab3030

    Thanks y’all I will give that a try!

    posted in Pythonista read more
  • Ahab3030

    I am trying to make a simple GUI in UI that will give me the hypotenuse from 2 numbers A and B. the button was displayed, but went away(not sure why). I can write numbers in the upper 2 text field’s and I’d like the button to perform a hypotenuse calc on the numbers and display it in 3rd field, which for some reason I believe needs to be a label and not TextField. Any help is appreciated. Thanks!

    ————————————————————————————————————————————————————————

    import ui
    import math
    import string
    
    
    view = ui.View()
    view.name = 'hypotenuse'
    view.background_color = 'white'
    
    # variables for lengths A and B
    
    A = float()
    B = float()
    
    # label for length
    
    LenLbl = ui.Label()
    LenLbl.text = 'Length'
    LenLbl.x = 370
    LenLbl.y = 80
    
    # text feild input for length (A)
    
    Length = ui.TextField(A)
    Length.x = 300
    Length.y = 150
    Length.width = 200
    Length.border_width = 1
    
    # label for width
    
    widLbl = ui.Label()
    widLbl.text = 'Width'
    widLbl.x = 370
    widLbl.y = 280
    
    # text feild input for width (B)
    
    Width = ui.TextField(B)
    Width.x = 300
    Width.y = 350
    Width.width = 200
    Width.border_width = 1
    
    # label for result
    
    resLbl = ui.Label()
    resLbl.text = 'Result'
    resLbl.x = 370
    resLbl.y = 480
    
    # label that should show result of hypotenuse of A and B when button is pushed
    
    Result = ui.Label()
    Result.text = str()
    Result.x = 300
    Result.y = 550
    Result.width = 200
    Result.border_width = 1
    
    # math for hypot calc
    
    C = math.hypot(A, B)
    
    # attempt at getting button to perform calc and put result in result Label
    
    def button_tapped(C):
        Result.text = float(eval(C))
    
    button = ui.Button()
    button.text = ' Calculate '
    button.x = 300
    button.y = 650
    button.action = button_tapped
    button.border_width = 1
    
    # putting items on screen in GUI(only button wont show up)
    
    view.add_subview(Width)
    view.add_subview(widLbl)
    view.add_subview(Length)
    view.add_subview(LenLbl)
    view.add_subview(button)
    view.add_subview(resLbl)
    view.add_subview(Result)
    view.present('fullscreen')
    

    posted in Pythonista read more

Internal error.

Oops! Looks like something went wrong!