PySimpleGUI и переменная ввода
Всем привет. Я только начал изучать питон, буду благодарен, если подскажете. Мне нужна программа, которая может проверять никнеймы на двух сайтах. Есть графический интерфейс. Суть проблемы, в том, что после нажатия кнопки открываются сразу две ссылки даже если ничего не введено. Я хочу сделать, чтобы программа проверяла, введено ли что-то и где именно и относительно этого открывала ссылки. Первое, что не понятно, это сделать, чтобы то, что введено в окно 1 отделить от того, что введено в окно 2. Хочу сделать 2 переменные и проверять их
import webbrowser
import PySimpleGUI as sg
sg.theme('Black')
layout = [ [sg.Text('Проверка на форуме'), sg.InputText()],
[sg.Text('Проверка на StatName'), sg.InputText()],
[sg.Button('Проверить')] ]
window = sg.Window('ForumCheck', layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'Cancel': # if user closes window or clicks cancel
break
fr=(values[0])
webbrowser.open(f"https://www.gipsyteam.ru/profile/{fr}")
webbrowser.open(f"https://statname.net/player_search?term={fr}")
Ответы (2 шт):
Автор решения: gil9red
→ Ссылка
Добавил:
- Ключи к полям и кнопке
- Логику при клике на кнопку с извлечением значений полей
Если нужна проверка введенного значения в полях используйте if <переменная>::, пример:
if gipsyteam:
webbrowser.open(f"https://www.gipsyteam.ru/profile/{gipsyteam}")
Пример:
import webbrowser
import PySimpleGUI as sg
sg.theme('Black')
layout = [
[sg.Text('Проверка на форуме'), sg.InputText(key='input_gipsyteam')],
[sg.Text('Проверка на StatName'), sg.InputText(key='input_statname')],
[sg.Button('Проверить', key='button_check')]
]
window = sg.Window('ForumCheck', layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'Cancel': # if user closes window or clicks cancel
break
if event == 'button_check':
gipsyteam = values['input_gipsyteam']
statname = values['input_statname']
webbrowser.open(f"https://www.gipsyteam.ru/profile/{gipsyteam}")
webbrowser.open(f"https://statname.net/player_search?term={statname}")
Автор решения: Александр
→ Ссылка
import webbrowser
import PySimpleGUI
from PySimpleGUI import theme, Window, Text, InputText, Button
class Application:
def __init__(self):
theme('green')
layout = [[Text('Проверка на форуме'), InputText()],
[Text('Проверка на StatName'), InputText()],
[Button('Проверить')]]
self.window = Window('ForumCheck', layout)
def run(self):
while True:
event, values = self.window.read()
# print(f"Event: {event}\nValues: {values}") # Смотрим что из себя представляют event и values
if event == PySimpleGUI.WIN_CLOSED or event == 'Cancel': # if user closes window or clicks cancel
break
# Если нажата кнопка с текстом 'Проверить' то провалиться в блок
elif event == "Проверить":
# Будем проверять с учётом того что в один момент будет заполненно только одно поле ввода
if values[0]:
webbrowser.open(f"https://www.gipsyteam.ru/profile/{values[0]}")
elif values[1]:
webbrowser.open(f"https://statname.net/player_search?term={values[1]}")
def main():
Application().run()
if __name__ == '__main__':
main()