From a309841752dff995a29c9c8d097a795765c60d90 Mon Sep 17 00:00:00 2001 From: Eric Wild Date: Fri, 10 Jun 2022 16:30:01 +0200 Subject: [PATCH] osmocom_fft: make it work with gr >= 3.9 qwidget/pyqwidget This should fix it for both versions --- apps/osmocom_fft | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/apps/osmocom_fft b/apps/osmocom_fft index b23124a..c48ac7e 100755 --- a/apps/osmocom_fft +++ b/apps/osmocom_fft @@ -238,11 +238,14 @@ class app_top_block(gr.top_block, Qt.QMainWindow): self.iq_balance_mag = 0 self.iq_balance_pha = 0 + # see https://github.com/gnuradio/gnuradio/issues/5175 - 3.9 has a backport of pyqwidget, but 3.10 does not. + check_qwidget = lambda : self.scope.pyqwidget() if "pyqwidget" in dir(self.scope) else self.scope.qwidget() + if options.fosphor: from gnuradio import fosphor self.scope = fosphor.qt_sink_c() self.scope.set_frequency_range(0, input_rate) - self.scope_win = sip.wrapinstance(self.scope.pyqwidget(), Qt.QWidget) + self.scope_win = sip.wrapinstance(check_qwidget(), Qt.QWidget) self.scope_win.setMinimumSize(800, 300) elif options.waterfall: self.scope = qtgui.waterfall_sink_c( @@ -256,7 +259,7 @@ class app_top_block(gr.top_block, Qt.QMainWindow): self.scope.enable_grid(False) self.scope.enable_axis_labels(True) self.scope.set_intensity_range(-100, 20) - self.scope_win = sip.wrapinstance(self.scope.pyqwidget(), Qt.QWidget) + self.scope_win = sip.wrapinstance(check_qwidget(), Qt.QWidget) self.scope_win.setMinimumSize(800, 420) elif options.oscilloscope: @@ -266,7 +269,7 @@ class app_top_block(gr.top_block, Qt.QMainWindow): name="", nconnections=1 ) - self.scope_win = sip.wrapinstance(self.scope.pyqwidget(), Qt.QWidget) + self.scope_win = sip.wrapinstance(check_qwidget(), Qt.QWidget) self.scope_win.setMinimumSize(800, 600) elif options.qtgui: @@ -281,7 +284,7 @@ class app_top_block(gr.top_block, Qt.QMainWindow): plottime=True, plotconst=True ) - self.scope_win = sip.wrapinstance(self.scope.pyqwidget(), Qt.QWidget) + self.scope_win = sip.wrapinstance(check_qwidget(), Qt.QWidget) self.scope.set_update_time(1.0/10) self.scope_win.setMinimumSize(800, 600) @@ -294,7 +297,7 @@ class app_top_block(gr.top_block, Qt.QMainWindow): name="", nconnections=1 ) - self.scope_win = sip.wrapinstance(self.scope.pyqwidget(), Qt.QWidget) + self.scope_win = sip.wrapinstance(check_qwidget(), Qt.QWidget) self.scope.disable_legend() self.scope_win.setMinimumSize(800, 420)