From 84593d45866eec695b6fc4cbf96ba82d6f7c6eeb Mon Sep 17 00:00:00 2001 From: Brendan Griffen Date: Mon, 27 Jul 2026 23:01:00 +1000 Subject: [PATCH 01/10] chore: add .gitignore and MIT licence The repository had no .gitignore, so __pycache__ and virtualenvs were one stray command away from being committed, and no LICENSE, which leaves reuse terms undefined for a repo whose whole purpose is to be copied as a starting point. --- .gitignore | 26 ++++++++++++++++++++++++++ LICENSE | 21 +++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2b9547a --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Byte-compiled / optimised files +__pycache__/ +*.py[cod] +*$py.class + +# Distribution / packaging +build/ +dist/ +*.egg-info/ +.eggs/ + +# Virtual environments +.venv/ +venv/ +env/ + +# Test / coverage artefacts +.pytest_cache/ +.coverage +coverage.xml +htmlcov/ + +# Editors and OS cruft +.idea/ +.vscode/ +.DS_Store diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..55e036a --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Brendan Griffen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 5098e9807bd2977a46a691d0f7dbd67feb9598dc Mon Sep 17 00:00:00 2001 From: Brendan Griffen Date: Mon, 27 Jul 2026 23:01:01 +1000 Subject: [PATCH 02/10] fix: port the matplotlib editor from Qt4 to Qt5 CommonMPL was still entirely Qt4 despite the earlier 'updated to qt5' commit, so the application could not start at all on the versions its own requirements.txt pins: * mpl.use('Qt4Agg') -> ValueError, backend removed * matplotlib.backends.backend_qt4agg -> gone since matplotlib 3.5 * traitsui.qt4.editor -> gone since TraitsUI 8 Port to backend_qtagg and traitsui.qt. pyface.qt is imported first so it pins the Qt binding and matplotlib reuses it, rather than the two independently resolving different bindings and crashing when they share a widget. Also subclass the Qt Editor rather than the toolkit-agnostic base, which supplies a real set_size_policy so the figure honours resizing, and give update_editor an actual redraw instead of a no-op. Replace the 'from CommonMPL import *' star imports in main and firstcalc with explicit ones. CommonMPL was doubling as a grab-bag re-exporting the whole traits API; it now exports only the editor and declares __all__. Verified by building the full widget tree offscreen. --- CommonMPL.py | 146 ++++++++++++++++++++------------------------------- firstcalc.py | 17 +++++- main.py | 6 ++- 3 files changed, 77 insertions(+), 92 deletions(-) diff --git a/CommonMPL.py b/CommonMPL.py index 250d1eb..1efba63 100644 --- a/CommonMPL.py +++ b/CommonMPL.py @@ -1,113 +1,79 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- -# Pierre Haessig — March 2014 -""" -Qt adaptation of Gael Varoquaux's tutorial to integrate Matplotlib -http://docs.enthought.com/traitsui/tutorials/traits_ui_scientific_app.html#extending-traitsui-adding-a-matplotlib-figure-to-our-application -based on Qt-based code shared by Didrik Pinte, May 2012 -http://markmail.org/message/z3hnoqruk56g2bje -adapted and tested to work with PySide from Anaconda in March 2014 -""" +"""A TraitsUI editor that embeds a matplotlib figure in a Qt5 application. -from pyface.qt import QtGui, QtCore -#from traits.etsconfig.api import ETSConfig -#ETSConfig.toolkit = 'qt4' -# -import matplotlib as mpl -#mpl.rcParams['backend.qt4']='PySide' -# We want matplotlib to use a QT backend -mpl.use('Qt4Agg') -from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas -from matplotlib.figure import Figure -from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT - -from traits.api import Any, Instance -from traitsui.qt4.editor import Editor -from traitsui.qt4.basic_editor_factory import BasicEditorFactory -from traitsui.api import Handler +Originally a Qt adaptation by Pierre Haessig (March 2014) of Gael Varoquaux's +tutorial on integrating matplotlib with TraitsUI, based on Qt code shared by +Didrik Pinte (May 2012): +* http://docs.enthought.com/traitsui/tutorials/traits_ui_scientific_app.html +* http://markmail.org/message/z3hnoqruk56g2bje +* https://gist.github.com/pierre-haessig/9838326 +Import order matters here. ``pyface.qt`` is imported first so that it resolves +and caches the Qt binding (PyQt5, PySide2, ...); matplotlib then reuses the +already-imported binding instead of independently picking a different one, +which would crash the moment the two tried to share a widget. +""" -from traits.api import * -from traitsui.api import View,UItem, Item, Group, Heading, Label, \ - HSplit, Handler, CheckListEditor, EnumEditor, TableEditor, FileEditor, \ - ListEditor, Tabbed, VGroup, HGroup, RangeEditor, Spring, spring -from traitsui.menu import NoButtons - -#from traitsui.wx.editor import Editor -from traitsui.api import ColorTrait +from pyface.qt import QtGui -import numpy as np -from matplotlib import * -import os,sys,platform,socket,random +from matplotlib.backends.backend_qtagg import ( + FigureCanvasQTAgg as FigureCanvas, + NavigationToolbar2QT as NavigationToolbar, +) -class _MPLFigureEditor(Editor): +from traitsui.api import Handler +from traitsui.basic_editor_factory import BasicEditorFactory +from traitsui.qt.editor import Editor - scrollable = True +__all__ = ["MPLFigureEditor", "MPLInitHandler"] - def init(self, parent): - self.control = self._create_canvas(parent) - self.set_tooltip() - def update_editor(self): - pass +class _MPLFigureEditor(Editor): + """Wraps a :class:`~matplotlib.figure.Figure` trait in a Qt canvas.""" - def _create_canvas(self, parent): - """ Create the MPL canvas. """ - # matplotlib commands to create a canvas - frame = QtGui.QWidget() - mpl_canvas = FigureCanvas(self.value) - mpl_canvas.setParent(frame) - mpl_toolbar = NavigationToolbar2QT(mpl_canvas,frame) + scrollable = True - vbox = QtGui.QVBoxLayout() - vbox.addWidget(mpl_canvas) - vbox.addWidget(mpl_toolbar) - frame.setLayout(vbox) + def init(self, parent): + self._canvas = None + self.control = self._create_canvas(parent) + self.set_tooltip() - return frame + def update_editor(self): + """Redraw the canvas when the underlying figure trait changes.""" + if self._canvas is not None: + self._canvas.draw_idle() -class MPLFigureEditor(BasicEditorFactory): + def _create_canvas(self, parent): + """Build a frame holding the MPL canvas and its navigation toolbar.""" + frame = QtGui.QWidget() + mpl_canvas = FigureCanvas(self.value) + mpl_canvas.setParent(frame) + self._canvas = mpl_canvas + mpl_toolbar = NavigationToolbar(mpl_canvas, frame) - klass = _MPLFigureEditor + vbox = QtGui.QVBoxLayout() + vbox.addWidget(mpl_canvas) + vbox.addWidget(mpl_toolbar) + frame.setLayout(vbox) -class MPLInitHandler(Handler): - """Handler calls mpl_setup() to initialize mpl events""" - - def init(self, info): - """This method gets called after the controls have all been - created but before they are displayed. - """ - info.object.mpl_setup() - return True + return frame -if __name__ == "__main__": - # Create a window to demo the editor - from traits.api import HasTraits - from traitsui.api import View, Item - from numpy import sin, cos, linspace, pi - from matplotlib.widgets import RectangleSelector - class Test(HasTraits): +class MPLFigureEditor(BasicEditorFactory): + """Editor factory: ``Item('figure', editor=MPLFigureEditor())``.""" - figure = Instance(Figure, ()) + klass = _MPLFigureEditor - view = View(Item('figure', editor=MPLFigureEditor(), - show_label=False), - handler=MPLInitHandler, - resizable=True) - def __init__(self): - super(Test, self).__init__() - self.axes = self.figure.add_subplot(111) - t = linspace(0, 2*pi, 200) - self.axes.plot(sin(t)*(1+0.5*cos(11*t)), cos(t)*(1+0.5*cos(11*t))) +class MPLInitHandler(Handler): + """Calls ``mpl_setup()`` on the view object once its controls exist. - def mpl_setup(self): - def onselect(eclick, erelease): - print("eclick: {}, erelease: {}".format(eclick,erelease)) - - self.rs = RectangleSelector(self.axes, onselect, - drawtype='box',useblit=True) + Attach this to a ``View`` when you need to register matplotlib event + handlers (pickers, selectors) that require a live canvas. + """ - Test().configure_traits() \ No newline at end of file + def init(self, info): + info.object.mpl_setup() + return True diff --git a/firstcalc.py b/firstcalc.py index e92e0a6..fa3e2da 100644 --- a/firstcalc.py +++ b/firstcalc.py @@ -1,4 +1,19 @@ -from CommonMPL import * +import os +import random + +import numpy as np +from traits.api import ( + Bool, + Button, + Directory, + Enum, + Float, + HasTraits, + Int, + Range, + Str, +) +from traitsui.api import Group, Item, View class FirstCalc(HasTraits): diff --git a/main.py b/main.py index 427b2d0..5fb5e38 100644 --- a/main.py +++ b/main.py @@ -2,8 +2,12 @@ # -*- coding: utf-8 -*- # Brendan Griffen - January 2019 +from matplotlib.figure import Figure +from traits.api import Enum, HasTraits, Instance, Range +from traitsui.api import Group, HGroup, HSplit, Item, Tabbed, View + +from CommonMPL import MPLFigureEditor from firstcalc import FirstCalc -from CommonMPL import * class ApplicationMain(HasTraits): From 5a649a693c0491e8459c423751b04c46fcb429ed Mon Sep 17 00:00:00 2001 From: Brendan Griffen Date: Mon, 27 Jul 2026 23:01:01 +1000 Subject: [PATCH 03/10] fix: repair the dead marker controls in ApplicationMain The Marker and Size controls in the left panel could never do anything: * every handler guarded on 'display_points', an attribute nothing ever assigned, so all three returned early forever; * had the guard passed, each called wx.CallAfter -- wx is neither imported nor a dependency of what is now a Qt application, so the controls would have raised NameError instead; * markercolor was assigned in __init__ but never declared as a trait, so _markercolor_changed had no trait to fire it and no UI control. Declare markercolor/markerstyle/markersize properly, give markercolor a control, and add plot_xy() which owns the line and keeps display_points pointing at it, so the marker controls act on live data. plot_xy reuses the axes instead of clearing the figure, and re-enables autoscaling that the placeholder 0..1 limits had switched off. Also drop _secondcalc_default, which returned an undefined SecondCalc, and the __init__ that skipped HasTraits.__init__ and swallowed **kwargs; the defaults it set now live on the trait declarations. --- main.py | 139 +++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 93 insertions(+), 46 deletions(-) diff --git a/main.py b/main.py index 5fb5e38..19bab94 100644 --- a/main.py +++ b/main.py @@ -1,80 +1,127 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Brendan Griffen - January 2019 +"""Entry point for the template application. + +Layout is a horizontal split: a matplotlib canvas plus its marker controls on +the left, and a tabbed panel of calculation widgets on the right. Add a tab by +writing another ``HasTraits`` class alongside :class:`~firstcalc.FirstCalc` and +adding it to ``right_panel``. +""" from matplotlib.figure import Figure -from traits.api import Enum, HasTraits, Instance, Range +from traits.api import Any, Enum, HasTraits, Instance, Range from traitsui.api import Group, HGroup, HSplit, Item, Tabbed, View from CommonMPL import MPLFigureEditor from firstcalc import FirstCalc + class ApplicationMain(HasTraits): + """Top-level window owning the shared figure and its display settings.""" firstcalc = Instance(FirstCalc) display = Instance(Figure) - markerstyle = Enum(['+',',','*','s','p','d','o']) - markersize = Range(0,10,2) - - left_panel = Group(Item('display', editor=MPLFigureEditor(),show_label=False, resizable=True), - HGroup(Item(name='markerstyle', label="Marker"), - Item(name='markersize', label="Size"))) - - right_panel = Tabbed(Item('firstcalc', style='custom', label='First Tab',show_label=False)) - - view = View(HSplit(left_panel, - right_panel), - width = 1280, - height = 550, - resizable=True, - title="My First Python3 GUI Interface" - ) + + markercolor = Enum("blue", "red", "green", "black", "orange") + markerstyle = Enum("o", "+", ",", "*", "s", "p", "d") + markersize = Range(0, 10, 2) + + #: The matplotlib Line2D currently on the axes, or None before first plot. + display_points = Any(None) + + left_panel = Group( + Item("display", editor=MPLFigureEditor(), show_label=False, resizable=True), + HGroup( + Item(name="markerstyle", label="Marker"), + Item(name="markersize", label="Size"), + Item(name="markercolor", label="Colour"), + ), + ) + + right_panel = Tabbed( + Item("firstcalc", style="custom", label="First Tab", show_label=False) + ) + + view = View( + HSplit(left_panel, right_panel), + width=1280, + height=550, + resizable=True, + title="My First Python3 GUI Interface", + ) def _display_default(self): - """Initialises the display.""" + """Initialise the display.""" figure = Figure() - ax = figure.add_subplot(111) - ax = figure.axes[0] - ax.set_xlabel('X') - ax.set_ylabel('Y') - ax.set_xlim(0,1) - ax.set_ylim(0,1) - + axes = figure.add_subplot(111) + axes.set_xlabel("X") + axes.set_ylabel("Y") + axes.set_xlim(0, 1) + axes.set_ylim(0, 1) + # Set matplotlib canvas colour to be white - rect = figure.patch - rect.set_facecolor('w') + figure.patch.set_facecolor("w") return figure def _firstcalc_default(self): return FirstCalc(self) - def _secondcalc_default(self): - return SecondCalc(self) + def plot_xy(self, x, y): + """Draw ``x``/``y`` using the current marker settings. + + Reuses the existing line and axes rather than clearing the figure, so + the axis labels survive a replot and the marker controls keep a live + handle on what is drawn. + """ + axes = self.display.axes[0] + + if self.display_points is None: + (self.display_points,) = axes.plot( + x, + y, + color=self.markercolor, + marker=self.markerstyle, + markersize=self.markersize, + markeredgewidth=0.0, + linestyle="-", + ) + else: + self.display_points.set_data(x, y) + + # _display_default pins 0..1 as a placeholder for the empty plot, which + # switches autoscaling off; turn it back on now there is real data. + axes.relim() + axes.autoscale(enable=True) + self.redraw() + + def redraw(self): + """Request a canvas repaint, tolerating a figure with no canvas yet.""" + canvas = self.display.canvas + if canvas is not None: + canvas.draw_idle() def _markercolor_changed(self): - ax = self.display.axes[0] - if hasattr(self, 'display_points'): + if self.display_points is not None: self.display_points.set_color(self.markercolor) self.display_points.set_markeredgecolor(self.markercolor) - wx.CallAfter(self.display.canvas.draw) + self.redraw() def _markerstyle_changed(self): - ax = self.display.axes[0] - if hasattr(self, 'display_points'): + if self.display_points is not None: self.display_points.set_marker(self.markerstyle) - wx.CallAfter(self.display.canvas.draw) + self.redraw() def _markersize_changed(self): - ax = self.display.axes[0] - if hasattr(self, 'display_points'): + if self.display_points is not None: self.display_points.set_markersize(self.markersize) - wx.CallAfter(self.display.canvas.draw) + self.redraw() + + +def run(): + """Launch the application.""" + ApplicationMain().configure_traits() - def __init__(self, **kwargs): - self.markercolor = 'blue' - self.markersize = 2 - self.markerstyle = 'o' -if __name__ == '__main__': - app = ApplicationMain() - app.configure_traits() +if __name__ == "__main__": + run() From b9be704b8da1893a0ad34a1e42bb0abb3fad4cad Mon Sep 17 00:00:00 2001 From: Brendan Griffen Date: Mon, 27 Jul 2026 23:01:02 +1000 Subject: [PATCH 04/10] fix: correct invalid slider ranges and remove broken handler in FirstCalc gradient and yintcept were declared Range(0.0, 5.0, 10.0) -- a default outside its own bounds. Traits keeps 10.0 at init, then the RangeEditor clamps it to 5.0 while building the UI, firing _gradient_changed during startup. That handler called figure.clear(), so the axes labelled by _display_default were destroyed before the window was even shown. Give both sliders defaults inside their range (y = x). Delete _rangeplotx_changed. It watched a trait that does not exist, and could not have run regardless: a bare 'y' expression statement, and references to undefined 'figure', 'xtmp' and 'ytmp'. _gradient_changed and _yintcept_changed were byte-identical copies that each rebuilt the figure by hand; both now delegate to _replot, which goes through the main window's plot_xy. Wire up plotbutton, which was labelled 'Plot Me!' but had no _plotbutton_fired handler at all. Deduplicate listoptions, which offered 'Option 2' twice and so only ever showed two choices; initialise yval so the '1/x' readout is not 0.0 until the slider is first moved; take masterpath's default at instantiation rather than at import; and forward **kwargs through __init__ to HasTraits. --- firstcalc.py | 130 +++++++++++++++++++++++++-------------------------- 1 file changed, 64 insertions(+), 66 deletions(-) diff --git a/firstcalc.py b/firstcalc.py index fa3e2da..eccc0a2 100644 --- a/firstcalc.py +++ b/firstcalc.py @@ -1,3 +1,12 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +"""Example tab showing the common TraitsUI widgets wired to a live plot. + +Each trait below maps to a control in :attr:`FirstCalc.view`; the +``__changed`` and ``__fired`` methods are the notifications Traits +calls automatically when a value changes or a button is pressed. +""" + import os import random @@ -15,95 +24,84 @@ ) from traitsui.api import Group, Item, View + class FirstCalc(HasTraits): + """Demonstration panel driving the shared figure owned by the main window.""" # Add Traits objects option = Bool(True) - rangex = Range(1,10,5) + rangex = Range(1, 10, 5) yval = Float() - listoptions = Enum(['Option 1', 'Option 2','Option 2']) + listoptions = Enum("Option 1", "Option 2", "Option 3") stringopt = Str("Default string which can also be empty.") stringoptread = Str("Default string which can also be empty [read-only version].") - masterpath = Directory(os.getcwd()) + masterpath = Directory() button1 = Button("Button 1 Name") floatval = Float() changedcount = Int() plotbutton = Button("Plot Me!") - yintcept = Range(0.0,5.,10.) - gradient = Range(0.0,5.0,10.) + yintcept = Range(0.0, 5.0, 0.0) + gradient = Range(0.0, 5.0, 1.0) - #Construct the view + # Construct the view view = View( - Item(name='rangex',label='X-Value'), - Item(name='yval',style='readonly',label='1/x',format_str='%.2e'), - Item(name='listoptions',label='list of options'), - Item(name='stringopt'), - Item(name='stringoptread',style='readonly'), - Item(name='masterpath',label='Directory'), - Group(Item(name='button1',show_label=False)), - Group(Item(name='option',label='Boolean Option') - ,enabled_when='floatval < 0.5',label='Enabled Area Upon Random Value < 0.5',show_border=True - ), - Item(name='changedcount',style='readonly',label='Attempts'), - Item(name='floatval',label='random generated'), - Group(Item(name='gradient',label='gradient'), - Item(name='yintcept',label='y-intercept'), - Item(name='plotbutton',show_label=False),show_border=True,label='Plotting Area') - ) + Item(name="rangex", label="X-Value"), + Item(name="yval", style="readonly", label="1/x", format_str="%.2e"), + Item(name="listoptions", label="list of options"), + Item(name="stringopt"), + Item(name="stringoptread", style="readonly"), + Item(name="masterpath", label="Directory"), + Group(Item(name="button1", show_label=False)), + Group( + Item(name="option", label="Boolean Option"), + enabled_when="floatval < 0.5", + label="Enabled Area Upon Random Value < 0.5", + show_border=True, + ), + Item(name="changedcount", style="readonly", label="Attempts"), + Item(name="floatval", label="random generated"), + Group( + Item(name="gradient", label="gradient"), + Item(name="yintcept", label="y-intercept"), + Item(name="plotbutton", show_label=False), + show_border=True, + label="Plotting Area", + ), + ) + + def __init__(self, main, **kwargs): + super().__init__(**kwargs) + self.main = main + self.yval = 1.0 / self.rangex + + def _masterpath_default(self): + return os.getcwd() + def _line(self): + """Return the (x, y) of the straight line described by the sliders.""" + x = np.arange(10) + return x, self.gradient * x + self.yintcept + + def _replot(self): + self.main.plot_xy(*self._line()) + + # Both sliders describe the same line, so they share one handler. def _gradient_changed(self): - y = self.gradient * np.array(range(10)) + self.yintcept - - figure = self.main.display - figure.clear() - ax = figure.add_subplot(111) - ax = self.main.display.axes[0] - ax.plot(np.array(range(10)),y,color=self.main.markercolor, - marker=self.main.markerstyle, - markersize=self.main.markersize, - markeredgewidth=0.0, - linestyle='-') - self.main.display.canvas.draw() + self._replot() def _yintcept_changed(self): - y = self.gradient * np.array(range(10)) + self.yintcept - - figure = self.main.display - figure.clear() - ax = figure.add_subplot(111) - ax = self.main.display.axes[0] - ax.plot(np.array(range(10)),y,color=self.main.markercolor, - marker=self.main.markerstyle, - markersize=self.main.markersize, - markeredgewidth=0.0, - linestyle='-') - self.main.display.canvas.draw() - - def _rangeplotx_changed(self): - figure.clear() - y - ax = figure.add_subplot(111) - ax = self.main.display.axes[0] - ax.plot(xtmp,ytmp,color=self.main.markercolor, - marker=self.main.markerstyle, - markersize=self.main.markersize, - markeredgewidth=0.0, - linestyle='None') - self.main.display.canvas.draw() + self._replot() + + def _plotbutton_fired(self): + self._replot() def _rangex_changed(self): - self.yval = 1./self.rangex + self.yval = 1.0 / self.rangex def _button1_fired(self): self.changedcount += 1 self.floatval = random.random() def _floatval_changed(self): - self.stringopt = "Hey, you changed the integer value!" - - def __init__(self, main, **kwargs): - HasTraits.__init__(self) - self.main = main - - + self.stringopt = "Hey, you changed the value!" From 86f95a7e8df51fc7c7565e29fe6aca955d78a400 Mon Sep 17 00:00:00 2001 From: Brendan Griffen Date: Mon, 27 Jul 2026 23:01:03 +1000 Subject: [PATCH 05/10] refactor: reuse the shared editor in the standalone demo standalonematplotlib carried its own copy of _MPLFigureEditor. Keeping two implementations is what let them drift apart: this copy had been ported to Qt5 while the one in CommonMPL that the actual application imports was left on Qt4 and broken. Import the editor instead, dropping ~45 duplicated lines along with the no-op set_size_policy stub the copy needed to work around subclassing the toolkit-agnostic Editor base. Rename Test to RectangleSelectorDemo so pytest does not try to collect it as a test class, and keep MPLInitHandler's contract explicit. --- standalonematplotlib.py | 88 +++++++++++++---------------------------- 1 file changed, 27 insertions(+), 61 deletions(-) diff --git a/standalonematplotlib.py b/standalonematplotlib.py index bbe91e4..733db68 100644 --- a/standalonematplotlib.py +++ b/standalonematplotlib.py @@ -1,87 +1,53 @@ -from traits.api import HasTraits, Instance -from traitsui.api import View, Item, Handler -from traitsui.editor import Editor -from traitsui.basic_editor_factory import BasicEditorFactory - -from matplotlib.figure import Figure -from matplotlib.backends.backend_qt5agg import ( - FigureCanvasQTAgg as FigureCanvas, - NavigationToolbar2QT as NavigationToolbar, -) - -from pyface.qt import QtGui - -from numpy import sin, cos, linspace, pi -from matplotlib.widgets import RectangleSelector - - -class _MPLFigureEditor(Editor): - scrollable = True - - def init(self, parent): - self.control = self._create_canvas(parent) - self.set_tooltip() +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +"""Minimal demo of the matplotlib editor on its own, without the full app. - def update_editor(self): - pass +Run this to check your environment renders a figure and receives mouse events +before debugging anything in ``main.py``: - def set_size_policy(self, direction, resizable, springy, stretch): - pass - # Rest of your class code. + python standalonematplotlib.py - def _create_canvas(self, parent): - """ Create the MPL canvas. """ - # matplotlib commands to create a canvas - frame = QtGui.QWidget() - mpl_canvas = FigureCanvas(self.value) - mpl_canvas.setParent(frame) - mpl_toolbar = NavigationToolbar(mpl_canvas, frame) - - vbox = QtGui.QVBoxLayout() - vbox.addWidget(mpl_canvas) - vbox.addWidget(mpl_toolbar) - frame.setLayout(vbox) - - return frame - - -class MPLFigureEditor(BasicEditorFactory): - klass = _MPLFigureEditor +Drag a box over the curve; the selection coordinates are printed to stdout. +""" +from matplotlib.figure import Figure +from matplotlib.widgets import RectangleSelector +from numpy import cos, linspace, pi, sin +from traits.api import HasTraits, Instance +from traitsui.api import Item, View -class MPLInitHandler(Handler): - """Handler calls mpl_setup() to initialize mpl events""" +from CommonMPL import MPLFigureEditor, MPLInitHandler - def init(self, info): - """This method gets called after the controls have all been - created but before they are displayed. - """ - info.object.mpl_setup() - return True +class RectangleSelectorDemo(HasTraits): + """A single figure with a rectangle selector attached to its axes.""" -class Test(HasTraits): figure = Instance(Figure, ()) view = View( - Item('figure', editor=MPLFigureEditor(), show_label=False), + Item("figure", editor=MPLFigureEditor(), show_label=False), handler=MPLInitHandler, - resizable=True + resizable=True, + width=640, + height=480, + title="Matplotlib in TraitsUI", ) - def __init__(self): - super(Test, self).__init__() + def __init__(self, **kwargs): + super().__init__(**kwargs) self.axes = self.figure.add_subplot(111) t = linspace(0, 2 * pi, 200) self.axes.plot(sin(t) * (1 + 0.5 * cos(11 * t)), cos(t) * (1 + 0.5 * cos(11 * t))) def mpl_setup(self): + """Called by MPLInitHandler once the canvas exists.""" + def onselect(eclick, erelease): print(f"Start position: {eclick}, End position: {erelease}") + # Held on self so the selector is not garbage collected. self.rs = RectangleSelector(self.axes, onselect, useblit=True) - if __name__ == "__main__": - Test().configure_traits() + RectangleSelectorDemo().configure_traits() From 664580b99164f0f756b1f88c1f2b6dd67e570019 Mon Sep 17 00:00:00 2001 From: Brendan Griffen Date: Mon, 27 Jul 2026 23:01:03 +1000 Subject: [PATCH 06/10] build: modernise dependency declarations requirements.txt declared no Qt binding at all, so a clean 'pip install -r requirements.txt' left you unable to start the app -- both TraitsUI and matplotlib need one and neither depends on one. Add PyQt5 and relax the exact pins to the lower bounds the code genuinely requires, documenting why each floor exists. Replace the two per-platform conda lock files with a single environment.yml. They pinned Python 3.5, Qt 4.8, traits 4.6, traitsui 6.0 and matplotlib 1.5.1 to exact build hashes against the 'defaults' channel -- unresolvable today, and contradicting requirements.txt, which already asked for traitsui 8. They also leaked absolute prefixes from the author's machine. Delete the empty top-level __init__.py: the modules here are imported as top-level scripts, and an __init__.py at the repository root only confuses tooling into treating the checkout as a package. --- Python3GUITemplate_macosx.yml | 48 ------------------------ Python3GUITemplate_ubuntu.yml | 69 ----------------------------------- __init__.py | 0 environment.yml | 22 +++++++++++ requirements.txt | 18 ++++++--- 5 files changed, 35 insertions(+), 122 deletions(-) delete mode 100644 Python3GUITemplate_macosx.yml delete mode 100644 Python3GUITemplate_ubuntu.yml delete mode 100644 __init__.py create mode 100644 environment.yml diff --git a/Python3GUITemplate_macosx.yml b/Python3GUITemplate_macosx.yml deleted file mode 100644 index 1d99153..0000000 --- a/Python3GUITemplate_macosx.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: Python3GUITemplate -channels: - - defaults -dependencies: - - blas=1.0=mkl - - ca-certificates=2018.03.07=0 - - certifi=2018.8.24=py35_1 - - cycler=0.10.0=py35hb89929e_0 - - freetype=2.9.1=hb4e5f40_0 - - intel-openmp=2019.1=144 - - kiwisolver=1.0.1=py35h219a9d8_0 - - libcxx=4.0.1=hcfea43d_1 - - libcxxabi=4.0.1=hcfea43d_1 - - libedit=3.1.20170329=hb402a30_2 - - libffi=3.2.1=h475c297_4 - - libgfortran=3.0.1=h93005f0_2 - - libpng=1.6.36=ha441bb4_0 - - matplotlib=3.0.0=py35h54f8f79_0 - - mkl=2018.0.3=1 - - mkl_fft=1.0.6=py35hb8a8100_0 - - mkl_random=1.0.1=py35h5d10147_1 - - ncurses=6.1=h0a44026_1 - - numpy=1.15.2=py35h6a91979_0 - - numpy-base=1.15.2=py35h8a80b8c_0 - - openssl=1.0.2p=h1de35cc_0 - - pip=10.0.1=py35_0 - - pyface=6.0.0=py35_0 - - pygments=2.2.0=py35h392a662_0 - - pyparsing=2.2.1=py35_0 - - pyqt=4.11.4=py35_4 - - python=3.5.6=hc167b69_0 - - python-dateutil=2.7.3=py35_0 - - pytz=2018.5=py35_0 - - qt=4.8.7=4 - - readline=7.0=h1de35cc_5 - - setuptools=40.2.0=py35_0 - - sip=4.18=py35_0 - - six=1.11.0=py35_1 - - sqlite=3.26.0=ha441bb4_0 - - tk=8.6.8=ha441bb4_0 - - tornado=5.1.1=py35h1de35cc_0 - - traits=4.6.0=py35h1de35cc_3 - - traitsui=6.0.0=py35_1 - - wheel=0.31.1=py35_0 - - xz=5.2.4=h1de35cc_4 - - zlib=1.2.11=h1de35cc_3 -prefix: /Users/bgriffen/anaconda3/envs/Python3GUITemplate - diff --git a/Python3GUITemplate_ubuntu.yml b/Python3GUITemplate_ubuntu.yml deleted file mode 100644 index 10eae45..0000000 --- a/Python3GUITemplate_ubuntu.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Python3GUITemplate -channels: - - defaults -dependencies: - - backcall=0.1.0=py35_0 - - blas=1.0=mkl - - ca-certificates=2018.03.07=0 - - cairo=1.12.18=6 - - certifi=2018.8.24=py35_1 - - cycler=0.10.0=py35hc4d5149_0 - - decorator=4.3.0=py35_0 - - fontconfig=2.11.1=6 - - freetype=2.5.5=2 - - fribidi=1.0.5=h7b6447c_0 - - glib=2.56.2=hd408876_0 - - graphite2=1.3.13=h23475e2_0 - - harfbuzz=0.9.39=1 - - icu=58.2=h9c2bf20_1 - - intel-openmp=2019.1=144 - - ipython=6.5.0=py35_0 - - ipython_genutils=0.2.0=py35hc9e07d0_0 - - jedi=0.12.1=py35_0 - - libedit=3.1.20170329=h6b74fdf_2 - - libffi=3.2.1=hd88cf55_4 - - libgcc-ng=8.2.0=hdf63c60_1 - - libgfortran-ng=7.3.0=hdf63c60_0 - - libpng=1.6.36=hbc83047_0 - - libstdcxx-ng=8.2.0=hdf63c60_1 - - libuuid=1.0.3=h1bed415_2 - - libxcb=1.13=h1bed415_1 - - libxml2=2.9.8=h26e45fe_1 - - matplotlib=1.5.1=np111py35_0 - - mkl=2019.1=144 - - ncurses=6.1=he6710b0_1 - - numpy=1.11.3=py35h3dfced4_4 - - openssl=1.0.2p=h14c3975_0 - - pango=1.39.0=0 - - parso=0.3.1=py35_0 - - pcre=8.42=h439df22_0 - - pexpect=4.6.0=py35_0 - - pickleshare=0.7.4=py35hd57304d_0 - - pip=10.0.1=py35_0 - - pixman=0.32.6=0 - - prompt_toolkit=1.0.15=py35hc09de7a_0 - - ptyprocess=0.6.0=py35_0 - - pyface=6.0.0=py35_0 - - pygments=2.2.0=py35h0f41973_0 - - pyparsing=2.2.1=py35_0 - - pyqt=4.11.4=py35_4 - - python=3.5.6=hc3d631a_0 - - python-dateutil=2.7.3=py35_0 - - pytz=2018.5=py35_0 - - qt=4.8.7=4 - - readline=7.0=h7b6447c_5 - - setuptools=40.2.0=py35_0 - - simplegeneric=0.8.1=py35_2 - - sip=4.18=py35_0 - - six=1.11.0=py35_1 - - sqlite=3.26.0=h7b6447c_0 - - tk=8.6.8=hbc83047_0 - - traitlets=4.3.2=py35ha522a97_0 - - traits=4.6.0=py35h7b6447c_3 - - traitsui=6.0.0=py35_1 - - wcwidth=0.1.7=py35hcd08066_0 - - wheel=0.31.1=py35_0 - - xz=5.2.4=h14c3975_4 - - zlib=1.2.11=h7b6447c_3 -prefix: /home/bgriffen/anaconda3/envs/Python3GUITemplate - diff --git a/__init__.py b/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000..b548087 --- /dev/null +++ b/environment.yml @@ -0,0 +1,22 @@ +# Conda environment for the template. +# +# conda env create -f environment.yml +# conda activate Python3GUITemplate +# python main.py +# +# Replaces the previous per-platform lock files, which pinned Python 3.5, +# Qt 4 and TraitsUI 6 against exact build hashes that no longer resolve. +# One loosely-pinned file works on Linux, macOS and Windows alike. +name: Python3GUITemplate +channels: + - conda-forge +dependencies: + - python>=3.9 + - matplotlib-base>=3.5 + - numpy>=1.20 + - pyface>=8.0 + - pyqt>=5.15 + - traits>=6.2 + - traitsui>=8.0 + # Development only; drop if you just want to run the app. + - pytest>=7.0 diff --git a/requirements.txt b/requirements.txt index 0301ae2..eb04a9e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,13 @@ -matplotlib==3.7.0 -numpy==1.24.3 -pyface==8.0.0 -traits==6.4.1 -traitsui==8.0.0 +# Runtime dependencies. Lower bounds reflect what the code actually needs: +# matplotlib >= 3.5 -- backend_qtagg (backend_qt4agg was removed in 3.5) +# traitsui >= 8.0 -- traitsui.qt (traitsui.qt4 was removed in 8.0) +# +# PyQt5 is required: TraitsUI and matplotlib both need a Qt binding, and +# neither declares one. Swap it for PySide2/PySide6 if you prefer -- pyface +# resolves whichever is installed. +matplotlib>=3.5 +numpy>=1.20 +pyface>=8.0 +PyQt5>=5.15 +traits>=6.2 +traitsui>=8.0 From a6ee9b50cdfd0cff40d7e2960f0bf86be4538655 Mon Sep 17 00:00:00 2001 From: Brendan Griffen Date: Mon, 27 Jul 2026 23:01:04 +1000 Subject: [PATCH 07/10] test: add a headless regression suite 44 tests covering the defects fixed in this branch, runnable with no display via QT_QPA_PLATFORM=offscreen so they work in CI and over ssh. Each is pinned to a specific bug rather than to general behaviour: that no Qt4 or wx names return to the sources, that matplotlib and pyface resolve the same Qt binding, that Range defaults sit inside their own bounds, that replotting reuses the axes rather than clearing the figure, that autoscaling recovers from the placeholder limits, and that the marker controls reach the plotted line. Verified the suite has teeth by reintroducing three of the original bugs; each one fails the test written for it. pyproject.toml carries pytest and ruff configuration only. The repository is a template to copy rather than a library to install, so it declares no build backend -- shipping top-level modules called 'main' and 'CommonMPL' to site-packages would collide with anything else doing the same. --- pyproject.toml | 20 +++++++++ tests/conftest.py | 43 ++++++++++++++++++ tests/test_application.py | 91 +++++++++++++++++++++++++++++++++++++++ tests/test_commonmpl.py | 64 +++++++++++++++++++++++++++ tests/test_firstcalc.py | 71 ++++++++++++++++++++++++++++++ 5 files changed, 289 insertions(+) create mode 100644 pyproject.toml create mode 100644 tests/conftest.py create mode 100644 tests/test_application.py create mode 100644 tests/test_commonmpl.py create mode 100644 tests/test_firstcalc.py diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..6592392 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,20 @@ +# Tool configuration only. +# +# This repository is a template to copy and edit in place, not a library to +# install, so it deliberately declares no build backend or distribution +# metadata -- publishing top-level modules named "main" and "CommonMPL" into +# site-packages would collide with anything else doing the same. + +[tool.pytest.ini_options] +testpaths = ["tests"] +# The modules under test sit at the repository root and are imported as +# top-level scripts, matching how the application runs. +pythonpath = ["."] +addopts = "-ra" + +[tool.ruff] +line-length = 100 +target-version = "py39" + +[tool.ruff.lint] +select = ["E", "F", "I", "UP", "B"] diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..06353e9 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,43 @@ +"""Shared fixtures. + +Qt needs a platform plugin and a QApplication before any widget exists. Both +are set up here so the suite runs on a headless machine (CI, ssh, container) +with no display attached. +""" + +import os + +# Must be set before any Qt binding is imported. +os.environ.setdefault("QT_QPA_PLATFORM", "offscreen") +os.environ.setdefault("ETS_TOOLKIT", "qt") + +import pytest # noqa: E402 + + +@pytest.fixture(scope="session") +def qt_app(): + """A process-wide QApplication; Qt allows only one.""" + from pyface.qt import QtGui + + app = QtGui.QApplication.instance() or QtGui.QApplication([]) + yield app + + +@pytest.fixture +def main_window(): + """An ApplicationMain with no UI built, for testing plotting logic.""" + from main import ApplicationMain + + return ApplicationMain() + + +@pytest.fixture +def live_ui(qt_app, main_window): + """An ApplicationMain with its real widget tree constructed and disposed. + + Building the UI is what surfaces bugs that only fire when TraitsUI editors + initialise, so some regressions can only be caught this way. + """ + ui = main_window.edit_traits() + yield main_window + ui.dispose() diff --git a/tests/test_application.py b/tests/test_application.py new file mode 100644 index 0000000..7730e28 --- /dev/null +++ b/tests/test_application.py @@ -0,0 +1,91 @@ +"""Behaviour of the main window's figure and marker controls.""" + +from main import ApplicationMain + + +def test_display_default_labels_the_axes(main_window): + axes = main_window.display.axes[0] + assert (axes.get_xlabel(), axes.get_ylabel()) == ("X", "Y") + assert axes.get_xlim() == (0.0, 1.0) + + +def test_no_line_before_first_plot(main_window): + assert main_window.display_points is None + + +def test_marker_handlers_are_safe_before_any_plot(main_window): + """These used to guard on an attribute nothing ever set.""" + main_window.markerstyle = "s" + main_window.markersize = 6 + main_window.markercolor = "red" + assert main_window.display_points is None + + +def test_plot_xy_creates_a_line(main_window): + main_window.plot_xy([0, 1, 2], [0, 2, 4]) + line = main_window.display_points + assert line is not None + assert list(line.get_ydata()) == [0, 2, 4] + + +def test_plot_xy_reuses_the_same_line_and_axes(main_window): + main_window.plot_xy([0, 1], [0, 1]) + line, axes = main_window.display_points, main_window.display.axes[0] + + main_window.plot_xy([0, 1], [5, 6]) + + assert main_window.display_points is line + assert main_window.display.axes[0] is axes + assert list(line.get_ydata()) == [5, 6] + + +def test_replotting_keeps_the_axis_labels(main_window): + """The old handlers called figure.clear(), which threw the labels away.""" + main_window.plot_xy([0, 1, 2], [0, 2, 4]) + axes = main_window.display.axes[0] + assert (axes.get_xlabel(), axes.get_ylabel()) == ("X", "Y") + + +def test_plot_xy_rescales_past_the_placeholder_limits(main_window): + """_display_default's 0..1 limits switch autoscaling off; plot_xy re-enables it.""" + main_window.plot_xy([0, 1, 2], [0, 20, 40]) + axes = main_window.display.axes[0] + assert axes.get_xlim()[1] >= 2 + assert axes.get_ylim()[1] >= 40 + + +def test_marker_controls_reach_the_plotted_line(main_window): + main_window.plot_xy([0, 1, 2], [0, 2, 4]) + + main_window.markerstyle = "d" + main_window.markersize = 8 + main_window.markercolor = "green" + + line = main_window.display_points + assert line.get_marker() == "d" + assert line.get_markersize() == 8 + assert line.get_color() == "green" + assert line.get_markeredgecolor() == "green" + + +def test_defaults(): + window = ApplicationMain() + assert window.markercolor == "blue" + assert window.markerstyle == "o" + assert window.markersize == 2 + + +def test_kwargs_reach_hastraits(): + """The old __init__ swallowed **kwargs and skipped HasTraits.__init__.""" + assert ApplicationMain(markercolor="red").markercolor == "red" + + +def test_no_reference_to_a_missing_secondcalc(): + assert not hasattr(ApplicationMain, "_secondcalc_default") + + +def test_full_ui_builds_without_destroying_the_axes(live_ui): + """Regression: building the UI used to clear the figure via a clamped slider.""" + axes = live_ui.display.axes[0] + assert (axes.get_xlabel(), axes.get_ylabel()) == ("X", "Y") + assert len(live_ui.display.axes) == 1 diff --git a/tests/test_commonmpl.py b/tests/test_commonmpl.py new file mode 100644 index 0000000..e4697cf --- /dev/null +++ b/tests/test_commonmpl.py @@ -0,0 +1,64 @@ +"""Guards on the Qt5 port of the shared matplotlib editor.""" + +import pathlib + +import pytest + +import CommonMPL + +SOURCES = sorted(pathlib.Path(__file__).resolve().parent.parent.glob("*.py")) + +# Names that only exist in the Qt4 stack. Their reappearance means the app has +# regressed to imports that raise on matplotlib >= 3.5 / TraitsUI >= 8. +QT4_MARKERS = ["Qt4Agg", "backend_qt4agg", "traitsui.qt4", "wx.CallAfter"] + + +def test_exports_only_the_editor_api(): + assert CommonMPL.__all__ == ["MPLFigureEditor", "MPLInitHandler"] + + +def test_editor_factory_is_wired_to_the_qt_editor(): + assert CommonMPL.MPLFigureEditor().klass is CommonMPL._MPLFigureEditor + + +def test_qt_editor_base_supplies_set_size_policy(): + """Subclassing the Qt Editor is what makes the figure resize correctly.""" + assert hasattr(CommonMPL._MPLFigureEditor, "set_size_policy") + + +@pytest.mark.parametrize("source", SOURCES, ids=lambda p: p.name) +@pytest.mark.parametrize("marker", QT4_MARKERS) +def test_no_qt4_or_wx_references_remain(source, marker): + assert marker not in source.read_text() + + +def test_matplotlib_and_pyface_agree_on_the_qt_binding(): + """Two different bindings in one process crash on the first shared widget.""" + from matplotlib.backends.qt_compat import QT_API + from pyface.qt import qt_api + + assert QT_API.lower() == qt_api.lower() + + +def test_canvas_and_toolbar_are_built(qt_app): + """The editor produces a frame holding both a canvas and a toolbar.""" + from matplotlib.backends.backend_qtagg import ( + FigureCanvasQTAgg, + NavigationToolbar2QT, + ) + from matplotlib.figure import Figure + from traits.api import HasTraits, Instance + from traitsui.api import Item, View + + class Demo(HasTraits): + figure = Instance(Figure, ()) + view = View(Item("figure", editor=CommonMPL.MPLFigureEditor())) + + demo = Demo() + ui = demo.edit_traits() + try: + frame = ui.get_editors("figure")[0].control + assert frame.findChild(FigureCanvasQTAgg) is not None + assert frame.findChild(NavigationToolbar2QT) is not None + finally: + ui.dispose() diff --git a/tests/test_firstcalc.py b/tests/test_firstcalc.py new file mode 100644 index 0000000..251dd54 --- /dev/null +++ b/tests/test_firstcalc.py @@ -0,0 +1,71 @@ +"""Behaviour of the example calculation tab.""" + +import pytest +from traits.api import Range + +from firstcalc import FirstCalc + + +@pytest.fixture +def calc(main_window): + return main_window.firstcalc + + +@pytest.mark.parametrize("name", ["rangex", "yintcept", "gradient"]) +def test_range_defaults_lie_inside_their_bounds(name): + """gradient and yintcept were Range(0.0, 5.0, 10.0) -- default out of range. + + Traits keeps the bad value at init and the editor clamps it later, firing a + change handler mid-startup. + """ + trait = FirstCalc.class_traits()[name].handler + assert isinstance(trait, Range) + assert trait._low <= trait.default_value <= trait._high + + +def test_listoptions_has_no_duplicates(): + """'Option 2' was listed twice, so the menu only ever offered two choices.""" + values = FirstCalc.class_traits()["listoptions"].handler.values + assert len(values) == len(set(values)) == 3 + + +def test_yval_is_initialised(calc): + assert calc.yval == pytest.approx(1.0 / calc.rangex) + + +def test_rangex_updates_yval(calc): + calc.rangex = 4 + assert calc.yval == pytest.approx(0.25) + + +def test_button1_counts_and_randomises(calc): + calc._button1_fired() + assert calc.changedcount == 1 + assert 0.0 <= calc.floatval <= 1.0 + assert calc.stringopt == "Hey, you changed the value!" + + +def test_masterpath_defaults_to_cwd(tmp_path, monkeypatch, main_window): + """Taken at instantiation, not frozen at import time.""" + monkeypatch.chdir(tmp_path) + assert FirstCalc(main_window).masterpath == str(tmp_path) + + +def test_sliders_plot_through_the_main_window(calc, main_window): + calc.gradient = 2.0 + calc.yintcept = 1.0 + + line = main_window.display_points + assert line is not None + # y = 2x + 1 over x = 0..9 + assert list(line.get_ydata()) == [2 * x + 1 for x in range(10)] + + +def test_plot_button_replots(calc, main_window): + """'Plot Me!' previously had no _plotbutton_fired handler at all.""" + calc._plotbutton_fired() + assert main_window.display_points is not None + + +def test_broken_rangeplotx_handler_is_gone(): + assert not hasattr(FirstCalc, "_rangeplotx_changed") From 8a1c0b6d41b739511bc78115be1f9e4eabdc78cb Mon Sep 17 00:00:00 2001 From: Brendan Griffen Date: Mon, 27 Jul 2026 23:01:05 +1000 Subject: [PATCH 08/10] ci: run tests and lint on every push and pull request Tests run on Python 3.9, 3.11 and 3.12 against the offscreen Qt platform plugin, so no display or xvfb is needed. PyQt5's wheels bundle Qt but still link against system libraries the runner image lacks, so those are installed explicitly; the offscreen plugin needs them too. CI installs from requirements.txt rather than a bespoke list, so the file stays honest about what is actually required to run the app. Also drop the redundant '# -*- coding: utf-8 -*-' declarations (UTF-8 is the default in Python 3) and fence CommonMPL's imports with isort: off. Sorting them alphabetically would put matplotlib before pyface and silently undo the binding coordination the port depends on. --- .github/workflows/ci.yml | 55 ++++++++++++++++++++++++++++++++++++++++ CommonMPL.py | 6 ++++- firstcalc.py | 1 - main.py | 1 - standalonematplotlib.py | 1 - 5 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..4b8acde --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,55 @@ +name: CI + +on: + push: + branches: [master] + pull_request: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.9", "3.11", "3.12"] + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: pip + + # PyQt5 wheels bundle Qt itself but still link against these system + # libraries, which the GitHub runner image does not ship. They are + # needed even for the offscreen platform plugin. + - name: Install Qt system libraries + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + libegl1 libgl1 libdbus-1-3 libxkbcommon-x11-0 \ + libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 \ + libxcb-render-util0 libxcb-shape0 libxcb-xfixes0 libxcb-xinerama0 + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + pip install pytest + + - name: Run tests + env: + QT_QPA_PLATFORM: offscreen + run: pytest + + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + - run: pip install ruff + - run: ruff check . diff --git a/CommonMPL.py b/CommonMPL.py index 1efba63..3e41fee 100644 --- a/CommonMPL.py +++ b/CommonMPL.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- """A TraitsUI editor that embeds a matplotlib figure in a Qt5 application. Originally a Qt adaptation by Pierre Haessig (March 2014) of Gael Varoquaux's @@ -16,6 +15,9 @@ which would crash the moment the two tried to share a widget. """ +# isort: off +# Order is deliberate -- see the module docstring. pyface.qt must resolve the +# Qt binding before matplotlib looks for one. Do not let a formatter sort these. from pyface.qt import QtGui from matplotlib.backends.backend_qtagg import ( @@ -23,6 +25,8 @@ NavigationToolbar2QT as NavigationToolbar, ) +# isort: on + from traitsui.api import Handler from traitsui.basic_editor_factory import BasicEditorFactory from traitsui.qt.editor import Editor diff --git a/firstcalc.py b/firstcalc.py index eccc0a2..dc57136 100644 --- a/firstcalc.py +++ b/firstcalc.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- """Example tab showing the common TraitsUI widgets wired to a live plot. Each trait below maps to a control in :attr:`FirstCalc.view`; the diff --git a/main.py b/main.py index 19bab94..ad3ac2f 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- # Brendan Griffen - January 2019 """Entry point for the template application. diff --git a/standalonematplotlib.py b/standalonematplotlib.py index 733db68..f451477 100644 --- a/standalonematplotlib.py +++ b/standalonematplotlib.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- """Minimal demo of the matplotlib editor on its own, without the full app. Run this to check your environment renders a figure and receives mouse events From 756bfb8cd59d72d64312a2c692558c982ca8acbe Mon Sep 17 00:00:00 2001 From: Brendan Griffen Date: Mon, 27 Jul 2026 23:01:05 +1000 Subject: [PATCH 09/10] docs: rewrite the README and refresh the screenshot The old README described software that could not run: it advertised a Qt5 backend the code did not use, told you to 'source activate' a conda environment built from lock files that no longer resolve, and offered 'pip install -r requirements.txt' as an alternative that left you without a Qt binding. Rewrite it around what the template is actually for: a centred header with CI, Python, Qt and licence badges, then features, prerequisites, installation, usage, a file-by-file map, a worked example of adding a tab, and how to run the tests and linter. The author's original links and framing are kept. Add a section on the Traits naming convention, including the two behaviours that produced bugs in this repository -- editors clamping an out-of-range Range default during startup, and change handlers being bound at class creation. Verified the 'adding a tab' example by applying it to a copy of the tree: the new tab plots through plot_xy and the marker controls act on its line. Replace the two stale platform screenshots with one current capture, rendered offscreen from the fixed application. The old images predate the port and show the empty plot area the startup bug produced. --- .github/assets/screenshot.png | Bin 0 -> 83279 bytes PythonGUI_mac.png | Bin 120863 -> 0 bytes PythonGUI_ubuntu.png | Bin 105016 -> 0 bytes README.md | 167 ++++++++++++++++++++++++++++++---- 4 files changed, 150 insertions(+), 17 deletions(-) create mode 100644 .github/assets/screenshot.png delete mode 100644 PythonGUI_mac.png delete mode 100644 PythonGUI_ubuntu.png diff --git a/.github/assets/screenshot.png b/.github/assets/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..3a1b5af6a2b832d13b67ccfb7e893aa6158e0d49 GIT binary patch literal 83279 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 Y?UN4-GIYL76MmlAGv=Eoo7(#SAL32o-v9sr literal 0 HcmV?d00001 diff --git a/PythonGUI_mac.png b/PythonGUI_mac.png deleted file mode 100644 index f5b0def9eb3d0686dcd3c314fffda165b3cbf54a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120863 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

2~X9a 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 Y+{>a5tj -![View Upon Launch.](./PythonGUI_mac.png) +# Python3 GUI Template -Python2 [is dead](https://pythonclock.org/). Long live Python3. +A minimal, working starting point for scientific desktop apps built with Traits, TraitsUI, Qt5 and matplotlib. -This template is an improved and upgrade template made from the pieces of my [Python2Template](https://github.com/bgriffen/PythonGUITemplate). I've removed MayAvi and reduced it to the simplest components of Traits/TraitsUI+Matplotlib. The key difference here is that the backend is QT5 which leans heavily on the code found [here](https://gist.github.com/pierre-haessig/9838326). +[![CI](https://github.com/bgriffen/Python3GUITemplate/actions/workflows/ci.yml/badge.svg)](https://github.com/bgriffen/Python3GUITemplate/actions/workflows/ci.yml) +[![Python](https://img.shields.io/badge/python-3.9%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/) +[![Qt](https://img.shields.io/badge/Qt-5-41cd52)](https://www.qt.io/) +[![License](https://img.shields.io/badge/license-MIT-green)](LICENSE) -## Requirements + -I've stripped back the requirements and wrapped it all up in a conda environment file as the key to getting this working at the relevant version dependencies. There are two options to get you going, either: +![The application on launch](.github/assets/screenshot.png) -``` +Python2 [is dead](https://pythonclock.org/). Long live Python3. + +This template is an upgrade of my [Python2 template](https://github.com/bgriffen/PythonGUITemplate), +stripped back to the simplest useful combination of Traits/TraitsUI and matplotlib — no Mayavi. The +figure embedding leans on [Pierre Haessig's gist](https://gist.github.com/pierre-haessig/9838326), +ported here to Qt5. + +Copy the repository, rename it, and start replacing the example tab with your own. + +## Features + +- **An embedded matplotlib canvas** with the standard navigation toolbar (pan, zoom, save), wired + into TraitsUI as a reusable editor. +- **A split layout** — the shared figure on the left, a tabbed panel of controls on the right — that + scales to as many tabs as you need. +- **Live plot styling**: marker shape, size and colour controls that act on the plotted data + immediately. +- **A worked example of the common widgets** — sliders, checkboxes, dropdowns, text fields, a + directory picker, buttons, read-only outputs, and a group that enables itself conditionally. +- **Headless tests and CI**, so you can refactor the template without wondering what you broke. + +## Prerequisites + +- Python 3.9 or newer +- A Qt binding. `requirements.txt` installs PyQt5; PySide2 and PySide6 also work, as pyface uses + whichever it finds. + +On a bare Linux machine you may also need Qt's system libraries — see the +[CI workflow](.github/workflows/ci.yml) for the exact package list. + +## Installation + +With pip: + +```bash +git clone https://github.com/bgriffen/Python3GUITemplate.git +cd Python3GUITemplate +python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt ``` -Verified on Ubuntu (16.04 verified) and Mac OSX (10.13.6 verified): +Or with conda: -Be sure to update your conda should you run into any issues: +```bash +conda env create -f environment.yml +conda activate Python3GUITemplate ``` -conda update conda + +## Usage + +```bash +python main.py ``` -## Getting Started +Drag the **gradient** and **y-intercept** sliders to redraw the line, then change the **Marker**, +**Size** and **Colour** controls to restyle it. **Button 1** rolls a random number, which disables +the *Boolean Option* group once it lands above 0.5 — an example of `enabled_when`. -To run this program, you simply load your environment and run. +To check your environment in isolation before debugging the full app: +```bash +python standalonematplotlib.py ``` -source activate Python3GUITemplate -python main.py + +That opens a single figure with a rectangle selector attached; drag a box over the curve and the +selection coordinates are printed to stdout. + +## Project structure + +| File | Purpose | +| --- | --- | +| `main.py` | `ApplicationMain` — the window, the shared figure, and the marker controls. Start here. | +| `firstcalc.py` | `FirstCalc` — the example tab. Copy this to add your own. | +| `CommonMPL.py` | `MPLFigureEditor`, the TraitsUI editor that embeds a matplotlib figure in Qt. | +| `standalonematplotlib.py` | The editor on its own, for smoke-testing an environment. | +| `tests/` | Headless regression tests. | + +### Adding a tab + +Write a `HasTraits` class with a `view`, taking the main window as its first argument — say in a new +`secondcalc.py`: + +```python +class SecondCalc(HasTraits): + amplitude = Range(0.0, 5.0, 1.0) + view = View(Item("amplitude")) + + def __init__(self, main, **kwargs): + super().__init__(**kwargs) + self.main = main + + def _amplitude_changed(self): + x = np.linspace(0, 10, 200) + self.main.plot_xy(x, self.amplitude * np.sin(x)) +``` + +Then import it in `main.py` and register it on `ApplicationMain`: + +```python +secondcalc = Instance(SecondCalc) + +def _secondcalc_default(self): + return SecondCalc(self) + +right_panel = Tabbed( + Item("firstcalc", style="custom", label="First Tab", show_label=False), + Item("secondcalc", style="custom", label="Second Tab", show_label=False), +) +``` + +Route drawing through `ApplicationMain.plot_xy()` rather than touching the figure directly. It +reuses the axes and keeps the marker controls pointing at the current line; clearing the figure +yourself throws away the axis labels and silently breaks them. + +## Testing + +```bash +pip install pytest +pytest ``` -There is very comprehensive documentation on using Traits [here](http://code.enthought.com/projects/traits/documentation.php) and a lot of [tutorials](http://docs.enthought.com/traitsui/tutorials/index.html). I have some additional information relating to the Traits/TraitsUI functionality found [here](http://brendangriffen.com/creating-a-GUI-in-Python/). Note: that post is based on the old Python2 version. +The suite runs without a display — `conftest.py` selects Qt's `offscreen` platform plugin — so it +works over ssh, in containers and in CI. + +```bash +ruff check . # lint, matching the CI job +``` + +## Notes on Traits + +Traits calls a method named `__changed` whenever that trait's value changes, and +`__fired` when a `Button` is pressed. That naming is the whole wiring mechanism — there is no +explicit connect step. Two consequences worth knowing: + +- A `Range` whose default sits outside its own bounds will be clamped by the editor as the UI is + built, firing a change handler before the window is ever shown. +- The methods are bound when the class is created, so patching one afterwards has no effect. + +There is comprehensive documentation for +[Traits](http://code.enthought.com/projects/traits/documentation.php) and a set of +[TraitsUI tutorials](http://docs.enthought.com/traitsui/tutorials/index.html). I wrote up +some additional background [on my site](http://brendangriffen.com/creating-a-GUI-in-Python/), though +that post covers the older Python2 version. + +## Acknowledgments + +- [Pierre Haessig](https://gist.github.com/pierre-haessig/9838326) for the Qt matplotlib editor. +- Gael Varoquaux's + [TraitsUI scientific application tutorial](http://docs.enthought.com/traitsui/tutorials/traits_ui_scientific_app.html), + and Didrik Pinte for the original Qt version. + +## License -There is an additional script `standalonematplotlib.py` which just demonstrates the matplotlib functionality. +[MIT](LICENSE) From 00cf0be4794720c9acd33ea8d5291d3a4090a619 Mon Sep 17 00:00:00 2001 From: Brendan Griffen Date: Mon, 27 Jul 2026 23:01:05 +1000 Subject: [PATCH 10/10] ci: bump checkout and setup-python to Node 24 actions actions/checkout@v4 and actions/setup-python@v5 target Node 20, which the runners now force onto Node 24 with a deprecation warning on every job. Move to v5/v6 so a freshly added workflow does not ship already warning. --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4b8acde..60a4663 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,9 +15,9 @@ jobs: python-version: ["3.9", "3.11", "3.12"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} cache: pip @@ -47,8 +47,8 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v5 + - uses: actions/setup-python@v6 with: python-version: "3.12" - run: pip install ruff

h>m-`?=lrA6|- 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�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 diff --git a/PythonGUI_ubuntu.png b/PythonGUI_ubuntu.png deleted file mode 100644 index e1e94fb502a599b0537b2cf99019f054495a1a32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105016 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ы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