Date: November 26, 2025
Issue: Program/Combi editing crashes on macOS
Status: Hotfix applied, needs v1.2.1 release
When running the Qt GUI on macOS and trying to edit a program or combi (double-click or Edit button), the application crashes with:
NSInvalidArgumentException: -[QNSApplication _setup:]: unrecognized selector sent to instance
Tkinter and PySide6 (Qt) cannot coexist in the same process on macOS.
The edit dialog (edit_dialog.py) uses Tkinter, which tries to initialize its own event loop. When Tkinter's tk.Tk() is called while Qt is already running, macOS throws an exception because both frameworks try to manage the NSApplication.
Temporarily disabled the Tkinter edit dialogs in gui_qt.py:
edit_program()now shows an info dialog insteadedit_combi()now shows an info dialog instead- GUI no longer crashes
- Users see a message explaining the temporary limitation
-
Parameter Parsing ✅
- All program/combi/timbre parameters parse correctly
- Data is read and displayed properly in tables
-
Programmatic Editing ✅
test_edit_programmatic.pyworks fine- Direct API usage works
- Changes persist correctly
-
Simple Setlist Editor ✅
simple_setlist_editor.pyworks perfectly- Uses Tkinter exclusively (no Qt conflict)
- All setlist editing features work
-
CLI Tools ✅
- All command-line tools work
- No GUI conflicts
Replace Tkinter edit dialog with native Qt dialog:
Create a simple Qt-based edit dialog:
class QtEditDialog(QDialog):
def __init__(self, parent, patch, patch_type):
# Use QLineEdit, QSpinBox, QCheckBox
# Pure Qt, no TkinterAdd inline editing to the table:
- Double-click to edit name directly in table
- Right-click menu for category/favorite
Add an edit panel to the right side of the GUI:
- Select item to see properties
- Edit in place without dialog
- v1.2.0: Released with hotfix (edit disabled)
- v1.2.1: Will include Qt-based edit dialog
- ETA: 1-2 days
Use the Simple Setlist Editor (no issues):
python3 simple_setlist_editor.pyWait for v1.2.1, or use programmatic editing:
from pcg_tools.reader import read_pcg_file
from pcg_tools.writer import write_pcg_file
pcg = read_pcg_file("file.PCG")
program = pcg.get_all_programs()[0]
program.name = "New Name"
program.favorite = True
# Update raw_data (see test_edit_programmatic.py)
write_pcg_file(pcg, "file.PCG")After hotfix:
# Should NOT crash
python3 -m pcg_tools.gui_qt
# Open file, go to Programs tab, double-click
# Should show info dialog instead of crashingpcg_tools/gui_qt.py- Disabled Tkinter edit dialogsKNOWN_ISSUES.md- Documented the issueHOTFIX_v1.2.0_macOS.md- This file
- Don't mix GUI frameworks - Tkinter + Qt = crash on macOS
- Test on target platform - This only affects macOS
- Have fallback plans - Programmatic editing still works
- Document workarounds - Users need alternatives
- Commit hotfix
- Update v1.2.0 release notes
- Start work on v1.2.1 with Qt dialog
- Test on macOS before release
Status: Hotfix complete, GUI stable, edit functionality temporarily disabled