@mcmikey

Почему PySimpleGUI не может вывести двухзначное число?

Я сделал простую прогу которая получает данные из строк и генерит случайное число в их диапазоне. Но если выставить значения выше десяти то в любом случае выводит числа от 1 то 9. Это проблема модуля или кода и как это исправить?
import PySimpleGUI as sg
import random

sg.theme("Dark Green")

x = 0
y = 0

def generate():
	x = values["FROM"]
	y = values["TO"]
	values['OUTPUT'] = random.randint(int(x), int(y))
	window['OUTPUT'].update(values['OUTPUT'])

layout = [
	[sg.Text("From:"), sg.Input(size = (5, 1), enable_events = True, key = "FROM")],
	[sg.Text("To:"), sg.Input(size = (5, 1), enable_events = True, key = "TO")],
	[sg.Button("Generate:", key = "GENERATE"), sg.Text(random.randint(int(x), int(y)), key = 'OUTPUT')],
]

window = sg.Window("Random numbers", layout, size = (150, 100))

while True:
	event, values = window.read()
	if event == sg.WIN_CLOSED:
		break
	elif event == "GENERATE":
		generate()
window.close()
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
@Drill
sg.Text - это лейбл, в котором надо указать необходимую ширину поля, чтобы влезли все цифры.
Например, для четырехзначного числа, size=(4,1):
[sg.Button("Generate:", key = "GENERATE"), sg.Text(random.randint(int(x), int(y)), size=(4,1), key = 'OUTPUT')],


Или использовать параметр auto_size_text=False
[sg.Button("Generate:", key = "GENERATE"), sg.Text(random.randint(int(x), int(y)), key = 'OUTPUT', auto_size_text=False)],
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы