0

So, what I want is when the user writes something using a button instead of the keyboard in my scientific calculator, the pointer should move at the end of the string but, at the moment can't find a way for the pointer to move where the string ends in PySimpleGui.

layout = [      
      [sg.InputText('', key='equation', text_color='white', background_color=('#343434'), size = (26, 20), font=("Helvetica", 30))],
      [sg.Button('(', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button(')', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('Del', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('AC', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('shift', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('+', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20))],
      [sg.Button('1', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('2', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('3', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('log', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('ln', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('-', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20))],
      [sg.Button('4', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('5', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('6', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('sin', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('tan', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('*', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20))],
      [sg.Button('7', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('8', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('9', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('exp', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('cos', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('/', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20))],
      [sg.Button('.', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('0', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('=', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('π', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('sqrt', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20)),
       sg.Button('%', button_color=('white', 'blue'), size=(5, 1), font=("Helvetica", 20))]
     ] 

window = sg.Window('Ameer Generator', layout, background_color="#343434", 
icon = ".\icon\icon.ico")

while True:
  event, values = window.Read()
  if event == 'Exit':
      break
  if event != 'shift' and event != '!' and event != 'AC' and event != '=' and event != 'π' and event != 'C':
      window.Element('equation').Update(values['equation'] + event)
  if event == '=':
    equate(values['equation'])
  if event == 'AC':
    window.Element('equation').Update('')

  if event == 'Del':
    equation = values['equation']
    equation = equation[:-1]
    window.Element('equation').Update(equation)

window.Close()

1 Answers1

1

A change was needed to the code to move the cursor to the end. Get a new PySimpleGUI.py file from GitHub and it'll work.

Mike from PSG
  • 5,312
  • 21
  • 39