PySimpleGUI how to put 9×9 InputText

Question:

import PySimpleGUI as sg
import numpy as np

sg.theme('LightGreen10')
col1a = [
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],

]

col1b = [
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
]

col1c = [
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
]

col2a = [
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
]

col2b = [
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
]

col2c = [
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
]

col3a = [
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
]

col3b = [
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
]

col3c = [
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))], [sg.Text(''), sg.InputText(size=(3, 1))],
    [sg.Text(''), sg.InputText(size=(3, 1))],
]
##[sg.HorizontalSeparator()],
layout = [
    [sg.T("Start now:")],
    [sg.Col(col1a, justification='right'), sg.Col(col2a, justification='center'), sg.Col(col3a, justification='left')],

    [sg.Col(col1b, justification='right'), sg.Col(col2b, justification='center'), sg.Col(col3b, justification='left')],

    [sg.Col(col1c, justification='right'), sg.Col(col2c, justification='center'), sg.Col(col3c, justification='left')],

    [sg.Submit(), sg.Exit()]
    ]

window = sg.Window("Weleome!", layout, size=(600, 350))

while True:

    event, values = window.read()
    print(event, values)
    if event in (sg.WIN_CLOSED, 'Exit'):
        break
    elif event == "Submit":
        #print(values)
        print("Please wait a moment")

How can I make 9×9 InputText in PySimpleGUI?

My code as above, it returns:

enter image description here

But I want:

enter image description here

Moreover, about sg.FilesBrowse
Is it possible to move or rearrange the order of Files list (passed to Lbox)?

For example, there are 3 files on the Lbox
0: XXX1.pdf
1: XXX2.pdf
2: XXX3.pdf

Is there any way to move the order in Lbox?
like:
0: XXX2.pdf
1: XXX3.pdf
2: XXX1.pdf

Thanks for reply
updates:
Thanks you all, I got the answer, Thanks you.

I have try the above code, but get all values, I just want to get (0,0) value only.

Asked By: antony yu

||

Answers:

It will be much easy with list comprehension for the layout.

import PySimpleGUI as sg

sg.theme('DarkBlue')
sg.set_options(font='Courier 11')

layout = [
    [sg.Input(
        str((row, col)),
        size=6,
        pad=((1, 10) if col%3==2 else (10, 1) if col%3==0 else 1 , (1, 10) if row%3==2 else (10, 1) if row%3==0 else 1),
        key=('-INPUT-', row, col)
     ) for col in range(9)] for row in range(9)]

sg.Window('Title', layout, margins=(3, 3)).read(close=True)

enter image description here

Answered By: Jason Yang
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.