[Bug?] [Solved] Menu not generating an event on latest Raspbian Pi4
Author: byteymanCreated Apr 23, 2025Updated Apr 28, 2025
Bug?
Operating System
bookworm on Pi4 glibc 2.36 3.11.2 (main, Nov 30 2024, 21:22:50) [GCC 12.2.0]3.11.2 (main, Nov 30 2024, 21:22:50) [GCC 12.2.0]
PySimpleGUI 5.0.8
tkinter 8.6.13
Python version 3.11.2 (main, Nov 30 2024, 21:22:50) [GCC 12.2.0]
Your Experience In Months or Years (optional)
Years Python programming experience 20
Years Programming experience overall 40
Have used another Python GUI Framework? (tkinter, Qt, etc) (yes/no is fine) yes
Troubleshooting
These items may solve your problem. Please check those you've done by changing - [ ] to - [X]
- Searched main docs for your problem PySimpleGUI Documenation
- Looked for Demo Programs that are similar to your goal. It is recommend you use the Demo Browser! Demo Programs
- None of your GUI code was generated by an AI algorithm like GPT
- If not tkinter - looked for Demo Programs for specific port
- For non tkinter - Looked at readme for your specific port if not PySimpleGUI (Qt, WX, Remi)
- Run your program outside of your debugger (from a command line)
- Searched through Issues (open and closed) to see if already reported Issues.PySimpleGUI.com
- Have upgraded to the latest release of PySimpleGUI on PyPI (lastest official version)
- Tried running the Development Build. Your problem may have already been fixed but not released. Check Home Window for release notes and upgrading capability
- For licensing questions please email [email protected]
Detailed Description
JUST A WHOLE LOT OF NOTHING returned on menu click. Sub-menu pops up and goes away just fine, but no event generated. Works OK on my Ubuntu desktop - just not here on my Pi4.
import PySimpleGUI as sg
layoutPRINT = [
[sg.Button('Print your TAB', disabled=False, key='-tab_print-')],
[sg.Button('and Finalize it', disabled=False, key='-tab_erase-')],
]
menu_def=[['New User',['Register']]]
layout=[
[sg.Menu(menu_def)],
[sg.Frame("", layoutPRINT)],
]
window = sg.Window('menu-play', [layout], finalize=True, keep_on_top=True)
while True:
event, values = window.read(timeout=100)
if event != sg.TIMEOUT_EVENT:
print(event)
if event == sg.WIN_CLOSED:
break
window.close()Source: PySimpleGUI/PySimpleGUI