beeware / beeware/toga

Investigate replacements for Python.net on Windows

Open
#4,204 13 comments 0 reactions 0 assignees View on GitHub
enhancement windows
Dominant language
Python
Stars
5.4k
Forks
827
Avg merge
15h 39m
Merged PRs (30d)
40

Description

### What is the problem or limitation you are having?

5 months after the release of Python 3.14, we [don't have a Python.net release that supports that version](https://github.com/pythonnet/pythonnet/issues/2610). This is an annual concern; Python.net releases always lag Python releases by up to months.

Python.net is used because it gives access to Winforms; however the Winforms API has a number of notable gaps - adding icons to Tables has proven complicated (#4164); multi-column Trees and DetailLists are equally complicated.

It's not clear if Winforms is the right API with which to build a modern Windows GUI library.

### Describe the solution you'd like

We need to find either:

1. A viable way to resource/assist with Python.net so that support for new Python releases doesn't lag
2. A path to making the Win32 backend viable (including, but not limited to, finding sources of information on how to build widgets, and how to simplify the developer experience). We have historically published a [win32](https://pypi.org/project/toga-win32) backend - we may need to resurrect it.
3. A path to using some other GUI layer, such as WinUI3 layer (#2574).

At this stage, an investigation of options is required.

### Describe alternatives you've considered

Stick with Winforms and Python.net. For all the flaws, it works...

### Additional context

#884 was a past manifestation of this problem. At the time, we decided to keep with Python.net; but the distribution lag and the edge cases in widget development haven't improved with time.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the Python.net release gap described here and the linked issues #2610, #4164, #2574, and #884. Compare assisting Python.net, resurrecting the Win32 backend, and using WinUI3, including the information needed to build widgets and simplify development. Done means documenting a viable path and its trade-offs.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.