Skip to content

get_widget_font_family_and_size tries to access a named font that doesn't exist - macOS #595

@maeldd

Description

@maeldd

Is there an existing issue for this?

  • I have searched the existing issues

Description of the bug

When I save the "Vehicle Component Editor Interface" step and try to continue to "Parameter File Editor and uploader interface", the app crash

Steps To Reproduce

  1. Run ardupilot_methodic_configurator
  2. Connect to the FC
  3. Enter the components of my vehicle and their properties
  4. Save it
  5. Crash

Expected behavior

After saving the components of my vehicle and their properties I should be able to access the Parameter File Editor and uploader interface.

Screenshots / Logs

2025-06-27 11:13:29,182 - INFO - Running version: 1.5.0 (git hash: b5a4148ccdfe2de8588f2b99cb7adc6762270ff9)
2025-06-27 11:13:29,895 - INFO - Already running latest version.
2025-06-27 11:13:30,281 - INFO - Available connection ports are:
2025-06-27 11:13:30,281 - INFO - /dev/cu.BLTH - n/a
2025-06-27 11:13:30,281 - INFO - /dev/cu.URT1 - n/a
2025-06-27 11:13:30,281 - INFO - /dev/cu.URT2 - n/a
2025-06-27 11:13:30,281 - INFO - /dev/cu.Bluetooth-Incoming-Port - n/a
2025-06-27 11:13:30,281 - INFO - /dev/cu.usbmodem141101 - CubeOrange+
2025-06-27 11:13:30,281 - INFO - /dev/cu.usbmodem141103 - CubeOrange+
2025-06-27 11:13:30,281 - INFO - tcp:127.0.0.1:5760 - tcp:127.0.0.1:5760
2025-06-27 11:13:30,281 - INFO - udp:127.0.0.1:14550 - udp:127.0.0.1:14550
2025-06-27 11:13:35,897 - INFO - Will connect to /dev/cu.usbmodem141101
2025-06-27 11:13:35,905 - INFO - Autopilot type ArduPilot - Plane/Copter/Rover/Sub/Tracker, https://ardupilot.org
2025-06-27 11:13:35,905 - INFO - Vehicle type: Quadrotor running ArduCopter firmware
2025-06-27 11:13:36,993 - INFO - Firmware Version: 4.5.7 official
2025-06-27 11:13:36,993 - INFO - Firmware first 8 hex bytes of the FC git hash: 2a3dc4b7
2025-06-27 11:13:36,993 - INFO - Firmware first 8 hex bytes of the ChibiOS git hash: 6a85082c
2025-06-27 11:13:36,993 - INFO - Flight Controller firmware type: CubeOrangePlus (1063)
2025-06-27 11:13:36,993 - INFO - Flight Controller HW / board version: 0
2025-06-27 11:13:36,993 - INFO - Flight Controller USB vendor ID: Hex/ProfiCNC,CubePilot
2025-06-27 11:13:36,993 - INFO - Flight Controller USB product ID: CubeOrange+
2025-06-27 11:13:37,079 - INFO - MAVFTP is supported by the /dev/cu.usbmodem141101 flight controller
2025-06-27 11:13:41,054 - INFO - Outputted 1056 parameters to complete.param
2025-06-27 11:13:41,056 - INFO - Outputted 1056 parameters to 00_default.param
2025-06-27 11:13:54,415 - INFO - Opening URL in browser: https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_HAL_ChibiOS/hwdef/CubeOrangePlus/README.md
2025-06-27 11:14:23,065 - INFO - Vehicle component data saved successfully.
2025-06-27 11:14:23,200 - WARNING - In file 'configuration_steps_ArduCopter.json': '18_notch_filter_setup.param' derived parameter 'INS_HNTCH_FREQ' could not be computed: 'fc_parameters' not found, is an FC connected?
2025-06-27 11:14:23,201 - WARNING - In file 'configuration_steps_ArduCopter.json': '20_throttle_controller.param' derived parameter 'PSC_ACCZ_I' could not be computed: 'fc_parameters' not found, is an FC connected?
2025-06-27 11:14:23,201 - WARNING - In file 'configuration_steps_ArduCopter.json': '20_throttle_controller.param' derived parameter 'PSC_ACCZ_P' could not be computed: 'fc_parameters' not found, is an FC connected?
2025-06-27 11:14:23,208 - WARNING - In file 'configuration_steps_ArduCopter.json': '34_autotune_yaw_setup.param' derived parameter 'ATC_RAT_YAW_FLTD' could not be computed: 'fc_parameters' not found, is an FC connected?
2025-06-27 11:14:23,217 - INFO - No last uploaded file found. Starting with the first file..
2025-06-27 11:14:23,220 - INFO - Created backup file autobackup_07.param
Traceback (most recent call last):
  File "/Users/mael/code/maeldd/pro/MethodicConfigurator/ardupilot_methodic_configurator/.ardupilot_methodic_configurator_venv/bin/ardupilot_methodic_configurator", line 8, in <module>
    sys.exit(main())
             ~~~~^^
  File "/Users/mael/code/maeldd/pro/MethodicConfigurator/ardupilot_methodic_configurator/.ardupilot_methodic_configurator_venv/lib/python3.13/site-packages/ardupilot_methodic_configurator/__main__.py", line 242, in main
    ParameterEditorWindow(start_file, flight_controller, local_filesystem)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mael/code/maeldd/pro/MethodicConfigurator/ardupilot_methodic_configurator/.ardupilot_methodic_configurator_venv/lib/python3.13/site-packages/ardupilot_methodic_configurator/frontend_tkinter_parameter_editor.py", line 171, in __init__
    self.__create_conf_widgets(__version__)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/Users/mael/code/maeldd/pro/MethodicConfigurator/ardupilot_methodic_configurator/.ardupilot_methodic_configurator_venv/lib/python3.13/site-packages/ardupilot_methodic_configurator/frontend_tkinter_parameter_editor.py", line 237, in __create_conf_widgets
    font_family, _font_size = get_widget_font_family_and_size(file_selection_label)
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mael/code/maeldd/pro/MethodicConfigurator/ardupilot_methodic_configurator/.ardupilot_methodic_configurator_venv/lib/python3.13/site-packages/ardupilot_methodic_configurator/frontend_tkinter_rich_text.py", line 66, in get_widget_font_family_and_size
    font_dict = tkFont.nametofont(font_name).config()
                ~~~~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/usr/local/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/tkinter/font.py", line 23, in nametofont
    return Font(name=name, exists=True, root=root)
  File "/usr/local/Cellar/python@3.13/3.13.5/Frameworks/Python.framework/Versions/3.13/lib/python3.13/tkinter/font.py", line 87, in __init__
    raise tkinter._tkinter.TclError(
        "named font %s does not already exist" % (self.name,))
_tkinter.TclError: named font TkDefaultFont does not already exist

Software information

  • Operating system: macOS 13.7.6
  • arduPilot Methodic Configuration version: 1.5.0
  • Python 3.11.12

Additional context

The issue seems to be in the get_widget_font_family_and_size function on line 65. It tries to access a named font that doesn't exist (the font is only available on Windows).

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions