On Mon, 15 Mar 2021, Federico Pellegrin wrote:
-) Fix various Gtk 3.0 ABI changes and incompatibilites.
-) Use matplotlib.backends.backend_gtk3agg backend
Oscilloscope seems now to run, draw and export files correctly.
Signed-off-by: Federico Pellegrin <fede(a)evolware.org>
---
oscilloscope-cmd.py | 2 +-
tuna/oscilloscope.py | 41 +++++++++++++++++++++++------------------
2 files changed, 24 insertions(+), 19 deletions(-)
diff --git a/oscilloscope-cmd.py b/oscilloscope-cmd.py
index 3672b79..2ca87e9 100755
--- a/oscilloscope-cmd.py
+++ b/oscilloscope-cmd.py
@@ -23,8 +23,8 @@
import getopt
import sys
import gi
-from gi.repository import Gtk
gi.require_version("Gtk", "3.0")
+from gi.repository import Gtk
from tuna import oscilloscope
diff --git a/tuna/oscilloscope.py b/tuna/oscilloscope.py
index a2ab2f5..317fe45 100755
--- a/tuna/oscilloscope.py
+++ b/tuna/oscilloscope.py
@@ -30,10 +30,10 @@ gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import GObject
-#from matplotlib.backends.backend_gtkagg import \
-# FigureCanvasGTKAgg as figure_canvas
-from matplotlib.backends.backend_agg import \
- FigureCanvasAgg as figure_canvas
+from matplotlib.backends.backend_gtk3agg import \
+ FigureCanvasGTK3Agg as figure_canvas
+#from matplotlib.backends.backend_agg import \
+# FigureCanvasAgg as figure_canvas
import matplotlib.figure
import matplotlib.ticker
import numpy
@@ -42,7 +42,8 @@ class histogram_frame(Gtk.Frame):
def __init__(self, title="Statistics", width=780, height=100,
max_value=500, nr_entries=10, facecolor="white"):
- Gtk.Frame.__init__(self, title)
+ Gtk.Frame.__init__(self)
+ self.set_label(title)
self.fraction = int(max_value / nr_entries)
if self.fraction == 0:
@@ -103,11 +104,12 @@ class oscilloscope_frame(Gtk.Frame):
def __init__(self, title="Osciloscope", width=780, height=360,
nr_samples_on_screen=250, graph_type='-',
- max_value=500, plot_color="lightgeen",
+ max_value=500, plot_color="lightgreen",
bg_color="darkgreen", facecolor="white",
ylabel="Latency", picker=None):
- Gtk.Frame.__init__(self, title)
+ Gtk.Frame.__init__(self)
+ self.set_label(title)
self.font = {'fontname' : 'Liberation Sans',
'color' : 'b',
@@ -123,7 +125,7 @@ class oscilloscope_frame(Gtk.Frame):
facecolor=facecolor)
ax = figure.add_subplot(111)
self.ax = ax
- ax.set_axis_bgcolor(bg_color)
+ ax.set_facecolor(bg_color)
self.on_screen_samples = ax.plot(self.ind, self.samples, graph_type,
color=plot_color, picker=picker)
@@ -173,7 +175,8 @@ def add_table_row(table, row, label_text,
label_value="0"):
class system_info_frame(Gtk.Frame):
def __init__(self, title="System", facecolor="white"):
- Gtk.Frame.__init__(self, title)
+ Gtk.Frame.__init__(self)
+ self.set_label(title)
self.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(facecolor))
@@ -218,7 +221,8 @@ class oscilloscope(Gtk.Window):
vbox.set_border_width(8)
self.add(vbox)
- stats_frame = Gtk.Frame("Statistics")
+ stats_frame = Gtk.Frame()
+ stats_frame.set_label("Statistics")
stats_frame.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(facecolor))
table = Gtk.Table(3, 2, False)
@@ -231,7 +235,8 @@ class oscilloscope(Gtk.Window):
self.avg_label = add_table_row(table, 1, "Avg")
self.max_label = add_table_row(table, 2, "Max")
- help_frame = Gtk.Frame("Help")
+ help_frame = Gtk.Frame()
+ help_frame.set_label("Help")
help_frame.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(facecolor))
table = Gtk.Table(4, 2, False)
@@ -260,15 +265,15 @@ class oscilloscope(Gtk.Window):
info_frame = system_info_frame()
vbox_help_info = Gtk.VBox()
- vbox_help_info.pack_start(info_frame, False, False)
- vbox_help_info.pack_end(help_frame, False, False)
+ vbox_help_info.pack_start(info_frame, False, False, 0)
+ vbox_help_info.pack_end(help_frame, False, False, 0)
hbox = Gtk.HBox()
- hbox.pack_start(vbox_help_info, False, False)
- hbox.pack_start(stats_frame, False, False)
- hbox.pack_end(self.hist, True, True)
+ hbox.pack_start(vbox_help_info, False, False, 0)
+ hbox.pack_start(stats_frame, False, False, 0)
+ hbox.pack_end(self.hist, True, True, 0)
- vbox.pack_start(self.scope, True, True)
- vbox.pack_end(hbox, True, False)
+ vbox.pack_start(self.scope, True, True, 0)
+ vbox.pack_end(hbox, True, False, 0)
self.show_all()
--
2.26.2
Signed-off-by: John Kacur <jkacur(a)redhat.com>