#python #raspberry-pi #pysimplegui
Вопрос:
я совсем новичок в python и PySimpleGUI.
Итак, я получил код ниже, который работает нормально. Следующим шагом я хочу заменить триггер elif «ОТЛАДКА» в событии: (что выполняется кнопкой) на событие прослушивания, исходящее от raspberry pi.
Я знаю, как отправлять переменные из моего PI (с красным узлом), используя sys.argv[2]. Но я не знаю, как запустить elif со значением из моего PI.
Спасибо
# from datetime import date
# from datetime import datetime
import sys
import PySimpleGUI as sg
# today = date.today()
# today_date = today.strftime("%d/%m/%Y")
# today_weekday = today.strftime("%A")
# now = datetime.now()
# current_time = now.strftime("%H:%M:%S")
sg.theme('DarkGrey') # Add a touch of color
# All the stuff inside your window.
layout = [
[sg.Column([[sg.T('')], [sg.Text('Some Name', font=('Helvetica', 15))]], justification='center'), ],
[sg.Column([[sg.Button('EXIT', key='_EXIT_')]], justification='center'), ],
[sg.Column([[sg.T('')],
[sg.Image('/home/pi/Desktop/Present_Card.png', key='_homescreen_image_', )]],
justification='center', visible=True), ],
[sg.Column([[sg.Text('', key='_customer-name-text_', font=('Helvetica', 20))]], justification='center',
visible=True), ],
[sg.Column([[sg.Text('Please Present Card', key='_present-card-text_', font=('Helvetica', 20))]],
justification='center', visible=True), ],
[sg.Column([[sg.Text('Another Name', font=('Helvetica', 8))]], justification='center'), ],
[sg.Column([[sg.Button('DEBUG', key='_DEBUG_')]], justification='center'), ],
]
window = sg.Window('Window', layout, no_titlebar=True, location=(0,0), size=(800,500), keep_on_top=True)
# Event Loop to process "events" and get the "values" of the inputs
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event== '_EXIT_': # if user closes window or clicks cancel
break
elif '_DEBUG_' in event:
try:
customer_balance = sys.argv[3]
except IndexError:
customer_balance = '0'
try:
customer_name = sys.argv[2]
except IndexError:
customer_name = 'Hello Mr Doe'
window['_homescreen_image_'].update(visible=False)
window['_customer-name-text_'].update(customer_name)
window['_present-card-text_'].update('Your Balance: ' customer_balance '
Комментарии:
1. Мне неясно, как "передавать значения с помощью sys.argv", потому что, насколько я знаю, эти аргументы передаются при первоначальном запуске программы. Я не знал, что с их помощью можно передавать аргументы в работающую программу. Это что, узловатая штука?
2. Запустите другой поток для прослушивания события с raspberry pi, затем сгенерируйте событие методом вызова
write_event_value(key, value)
sg.Window
, напримерwindow.write_event_value('_DEBUG_', value)
.
)
window.close()
Комментарии:
1. Мне неясно, как «передавать значения с помощью sys.argv», потому что, насколько я знаю, эти аргументы передаются при первоначальном запуске программы. Я не знал, что с их помощью можно передавать аргументы в работающую программу. Это что, узловатая штука?
2. Запустите другой поток для прослушивания события с raspberry pi, затем сгенерируйте событие методом вызова
write_event_value(key, value)
sg.Window
, напримерwindow.write_event_value('_DEBUG_', value)
.