From 8abc28b44c65bf710235be7d1528c5ad92f53e53 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Tue, 13 Oct 2015 18:47:32 -0400 Subject: [PATCH 06/22] qtgui: fixed examples for Qt5 compatibility. --- gr-qtgui/examples/pyqt_const_c.py | 62 +- gr-qtgui/examples/pyqt_example_c.py | 59 +- gr-qtgui/examples/pyqt_example_f.py | 59 +- gr-qtgui/examples/pyqt_freq_c.py | 59 +- gr-qtgui/examples/pyqt_freq_f.py | 60 +- gr-qtgui/examples/pyqt_histogram_f.py | 73 +- gr-qtgui/examples/pyqt_time_c.py | 66 +- gr-qtgui/examples/pyqt_time_f.py | 67 +- gr-qtgui/examples/pyqt_time_raster_b.py | 19 +- gr-qtgui/examples/pyqt_time_raster_f.py | 19 +- gr-qtgui/examples/pyqt_waterfall_c.py | 59 +- gr-qtgui/examples/pyqt_waterfall_f.py | 62 +- gr-qtgui/examples/qtgui_tags_viewing.grc | 2399 +++++++++++++++++++++++------- 13 files changed, 2164 insertions(+), 899 deletions(-) diff --git a/gr-qtgui/examples/pyqt_const_c.py b/gr-qtgui/examples/pyqt_const_c.py index 3a43bf9a92..0bb6c20d59 100755 --- a/gr-qtgui/examples/pyqt_const_c.py +++ b/gr-qtgui/examples/pyqt_const_c.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2011,2012 Free Software Foundation, Inc. +# Copyright 2011,2012,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -26,10 +26,10 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: - sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n") + sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n") sys.exit(1) try: @@ -44,71 +44,65 @@ except ImportError: sys.stderr.write("Error: Program requires gr-channels.\n") sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display, control): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.boxlayout.addWidget(control) self.resize(800, 500) -class control_box(QtGui.QWidget): +class control_box(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.setWindowTitle('Control Panel') self.setToolTip('Control the signals') - QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish', 10)) + QtWidgets.QToolTip.setFont(Qt.QFont('OldEnglish', 10)) - self.layout = QtGui.QFormLayout(self) + self.layout = QtWidgets.QFormLayout(self) # Control the first signal - self.freq1Edit = QtGui.QLineEdit(self) + self.freq1Edit = QtWidgets.QLineEdit(self) self.freq1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Frequency:", self.freq1Edit) - self.connect(self.freq1Edit, QtCore.SIGNAL("editingFinished()"), - self.freq1EditText) + self.freq1Edit.editingFinished.connect(self.freq1EditText) - self.amp1Edit = QtGui.QLineEdit(self) + self.amp1Edit = QtWidgets.QLineEdit(self) self.amp1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Amplitude:", self.amp1Edit) - self.connect(self.amp1Edit, QtCore.SIGNAL("editingFinished()"), - self.amp1EditText) + self.amp1Edit.editingFinished.connect(self.amp1EditText) # Control the second signal - self.freq2Edit = QtGui.QLineEdit(self) + self.freq2Edit = QtWidgets.QLineEdit(self) self.freq2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Frequency:", self.freq2Edit) - self.connect(self.freq2Edit, QtCore.SIGNAL("editingFinished()"), - self.freq2EditText) + self.freq2Edit.editingFinished.connect(self.freq2EditText) - self.amp2Edit = QtGui.QLineEdit(self) + self.amp2Edit = QtWidgets.QLineEdit(self) self.amp2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Amplitude:", self.amp2Edit) - self.connect(self.amp2Edit, QtCore.SIGNAL("editingFinished()"), - self.amp2EditText) + self.amp2Edit.editingFinished.connect(self.amp2EditText) - self.quit = QtGui.QPushButton('Close', self) + self.quit = QtWidgets.QPushButton('Close', self) self.quit.setMinimumWidth(100) + self.quit.clicked.connect(QtWidgets.qApp.quit) self.layout.addWidget(self.quit) - self.connect(self.quit, QtCore.SIGNAL('clicked()'), - QtGui.qApp, QtCore.SLOT('quit()')) - def attach_signal1(self, signal): self.signal1 = signal - self.freq1Edit.setText(QtCore.QString("%1").arg(self.signal1.frequency())) - self.amp1Edit.setText(QtCore.QString("%1").arg(self.signal1.amplitude())) + self.freq1Edit.setText("{0}".format(self.signal1.frequency())) + self.amp1Edit.setText("{0}".format(self.signal1.amplitude())) def attach_signal2(self, signal): self.signal2 = signal - self.freq2Edit.setText(QtCore.QString("%1").arg(self.signal2.frequency())) - self.amp2Edit.setText(QtCore.QString("%1").arg(self.signal2.amplitude())) + self.freq2Edit.setText("{0}".format(self.signal2.frequency())) + self.amp2Edit.setText("{0}".format(self.signal2.amplitude())) def freq1EditText(self): try: @@ -150,7 +144,7 @@ class my_top_block(gr.top_block): npts = 2048 - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) src1 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f1, 0.5, 0) src2 = analog.sig_source_c(Rs, analog.GR_SIN_WAVE, f2, 0.5, 0) @@ -158,6 +152,7 @@ class my_top_block(gr.top_block): channel = channels.channel_model(0.001) thr = blocks.throttle(gr.sizeof_gr_complex, 100*npts) self.snk1 = qtgui.const_sink_c(npts, "Constellation Example", 1) + self.snk1.disable_legend() self.connect(src1, (src,0)) self.connect(src2, (src,1)) @@ -171,8 +166,8 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) self.main_box = dialog_box(pyWin, self.ctrl_win) self.main_box.show() @@ -182,4 +177,3 @@ if __name__ == "__main__": tb.start() tb.qapp.exec_() tb.stop() - diff --git a/gr-qtgui/examples/pyqt_example_c.py b/gr-qtgui/examples/pyqt_example_c.py index 1bf61d949d..89ca7b2820 100755 --- a/gr-qtgui/examples/pyqt_example_c.py +++ b/gr-qtgui/examples/pyqt_example_c.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2011,2012 Free Software Foundation, Inc. +# Copyright 2011,2012,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -26,10 +26,10 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: - sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n") + sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n") sys.exit(1) try: @@ -44,71 +44,66 @@ except ImportError: sys.stderr.write("Error: Program requires gr-channels.\n") sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display, control): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.boxlayout.addWidget(control) self.resize(800, 500) -class control_box(QtGui.QWidget): +class control_box(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.setWindowTitle('Control Panel') self.setToolTip('Control the signals') - QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish', 10)) + QtWidgets.QToolTip.setFont(Qt.QFont('OldEnglish', 10)) - self.layout = QtGui.QFormLayout(self) + self.layout = QtWidgets.QFormLayout(self) # Control the first signal - self.freq1Edit = QtGui.QLineEdit(self) + self.freq1Edit = QtWidgets.QLineEdit(self) self.freq1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Frequency:", self.freq1Edit) - self.connect(self.freq1Edit, QtCore.SIGNAL("editingFinished()"), - self.freq1EditText) + self.freq1Edit.editingFinished.connect(self.freq1EditText) - self.amp1Edit = QtGui.QLineEdit(self) + self.amp1Edit = QtWidgets.QLineEdit(self) self.amp1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Amplitude:", self.amp1Edit) - self.connect(self.amp1Edit, QtCore.SIGNAL("editingFinished()"), - self.amp1EditText) + self.amp1Edit.editingFinished.connect(self.amp1EditText) # Control the second signal - self.freq2Edit = QtGui.QLineEdit(self) + self.freq2Edit = QtWidgets.QLineEdit(self) self.freq2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Frequency:", self.freq2Edit) - self.connect(self.freq2Edit, QtCore.SIGNAL("editingFinished()"), - self.freq2EditText) + self.freq2Edit.editingFinished.connect(self.freq2EditText) - self.amp2Edit = QtGui.QLineEdit(self) + self.amp2Edit = QtWidgets.QLineEdit(self) self.amp2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Amplitude:", self.amp2Edit) - self.connect(self.amp2Edit, QtCore.SIGNAL("editingFinished()"), - self.amp2EditText) + self.amp2Edit.editingFinished.connect(self.amp2EditText) - self.quit = QtGui.QPushButton('Close', self) + self.quit = QtWidgets.QPushButton('Close', self) self.quit.setMinimumWidth(100) self.layout.addWidget(self.quit) - self.connect(self.quit, QtCore.SIGNAL('clicked()'), - QtGui.qApp, QtCore.SLOT('quit()')) + self.quit.clicked.connect(QtWidgets.qApp.quit) def attach_signal1(self, signal): self.signal1 = signal - self.freq1Edit.setText(QtCore.QString("%1").arg(self.signal1.frequency())) - self.amp1Edit.setText(QtCore.QString("%1").arg(self.signal1.amplitude())) + self.freq1Edit.setText(("{0}").format(self.signal1.frequency())) + self.amp1Edit.setText(("{0}").format(self.signal1.amplitude())) def attach_signal2(self, signal): self.signal2 = signal - self.freq2Edit.setText(QtCore.QString("%1").arg(self.signal2.frequency())) - self.amp2Edit.setText(QtCore.QString("%1").arg(self.signal2.amplitude())) + self.freq2Edit.setText(("{0}").format(self.signal2.frequency())) + self.amp2Edit.setText(("{0}").format(self.signal2.amplitude())) def freq1EditText(self): try: @@ -150,7 +145,7 @@ class my_top_block(gr.top_block): fftsize = 2048 - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) ss = open(gr.prefix() + '/share/gnuradio/themes/dark.qss') sstext = ss.read() ss.close() @@ -178,8 +173,8 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) self.main_box = dialog_box(pyWin, self.ctrl_win) diff --git a/gr-qtgui/examples/pyqt_example_f.py b/gr-qtgui/examples/pyqt_example_f.py index 5bd582d1e1..77a7478aa2 100755 --- a/gr-qtgui/examples/pyqt_example_f.py +++ b/gr-qtgui/examples/pyqt_example_f.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2011,2012 Free Software Foundation, Inc. +# Copyright 2011,2012,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -26,10 +26,10 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: - sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n") + sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n") sys.exit(1) try: @@ -38,71 +38,66 @@ except ImportError: sys.stderr.write("Error: Program requires gr-analog.\n") sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display, control): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.boxlayout.addWidget(control) self.resize(800, 500) -class control_box(QtGui.QWidget): +class control_box(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.setWindowTitle('Control Panel') self.setToolTip('Control the signals') - QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish', 10)) + QtWidgets.QToolTip.setFont(Qt.QFont('OldEnglish', 10)) - self.layout = QtGui.QFormLayout(self) + self.layout = QtWidgets.QFormLayout(self) # Control the first signal - self.freq1Edit = QtGui.QLineEdit(self) + self.freq1Edit = QtWidgets.QLineEdit(self) self.freq1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Frequency:", self.freq1Edit) - self.connect(self.freq1Edit, QtCore.SIGNAL("editingFinished()"), - self.freq1EditText) + self.freq1Edit.editingFinished.connect(self.freq1EditText) - self.amp1Edit = QtGui.QLineEdit(self) + self.amp1Edit = QtWidgets.QLineEdit(self) self.amp1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Amplitude:", self.amp1Edit) - self.connect(self.amp1Edit, QtCore.SIGNAL("editingFinished()"), - self.amp1EditText) + self.amp1Edit.editingFinished.connect(self.amp1EditText) # Control the second signal - self.freq2Edit = QtGui.QLineEdit(self) + self.freq2Edit = QtWidgets.QLineEdit(self) self.freq2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Frequency:", self.freq2Edit) - self.connect(self.freq2Edit, QtCore.SIGNAL("editingFinished()"), - self.freq2EditText) + self.freq2Edit.editingFinished.connect(self.freq2EditText) - self.amp2Edit = QtGui.QLineEdit(self) + self.amp2Edit = QtWidgets.QLineEdit(self) self.amp2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Amplitude:", self.amp2Edit) - self.connect(self.amp2Edit, QtCore.SIGNAL("editingFinished()"), - self.amp2EditText) + self.amp2Edit.editingFinished.connect(self.amp2EditText) - self.quit = QtGui.QPushButton('Close', self) + self.quit = QtWidgets.QPushButton('Close', self) self.quit.setMinimumWidth(100) self.layout.addWidget(self.quit) - self.connect(self.quit, QtCore.SIGNAL('clicked()'), - QtGui.qApp, QtCore.SLOT('quit()')) + self.quit.clicked.connect(QtWidgets.qApp.quit) def attach_signal1(self, signal): self.signal1 = signal - self.freq1Edit.setText(QtCore.QString("%1").arg(self.signal1.frequency())) - self.amp1Edit.setText(QtCore.QString("%1").arg(self.signal1.amplitude())) + self.freq1Edit.setText(("{0}").format(self.signal1.frequency())) + self.amp1Edit.setText(("{0}").format(self.signal1.amplitude())) def attach_signal2(self, signal): self.signal2 = signal - self.freq2Edit.setText(QtCore.QString("%1").arg(self.signal2.frequency())) - self.amp2Edit.setText(QtCore.QString("%1").arg(self.signal2.amplitude())) + self.freq2Edit.setText(("{0}").format(self.signal2.frequency())) + self.amp2Edit.setText(("{0}").format(self.signal2.amplitude())) def freq1EditText(self): try: @@ -144,7 +139,7 @@ class my_top_block(gr.top_block): fftsize = 2048 - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) src1 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0) src2 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0) @@ -171,8 +166,8 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) self.main_box = dialog_box(pyWin, self.ctrl_win) diff --git a/gr-qtgui/examples/pyqt_freq_c.py b/gr-qtgui/examples/pyqt_freq_c.py index c53feb93d4..954a078df8 100755 --- a/gr-qtgui/examples/pyqt_freq_c.py +++ b/gr-qtgui/examples/pyqt_freq_c.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2012 Free Software Foundation, Inc. +# Copyright 2012,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -26,10 +26,10 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: - sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n") + sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n") sys.exit(1) try: @@ -44,71 +44,66 @@ except ImportError: sys.stderr.write("Error: Program requires gr-channels.\n") sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display, control): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.boxlayout.addWidget(control) self.resize(800, 500) -class control_box(QtGui.QWidget): +class control_box(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.setWindowTitle('Control Panel') self.setToolTip('Control the signals') - QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish', 10)) + QtWidgets.QToolTip.setFont(Qt.QFont('OldEnglish', 10)) - self.layout = QtGui.QFormLayout(self) + self.layout = QtWidgets.QFormLayout(self) # Control the first signal - self.freq1Edit = QtGui.QLineEdit(self) + self.freq1Edit = QtWidgets.QLineEdit(self) self.freq1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Frequency:", self.freq1Edit) - self.connect(self.freq1Edit, QtCore.SIGNAL("editingFinished()"), - self.freq1EditText) + self.freq1Edit.editingFinished.connect(self.freq1EditText) - self.amp1Edit = QtGui.QLineEdit(self) + self.amp1Edit = QtWidgets.QLineEdit(self) self.amp1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Amplitude:", self.amp1Edit) - self.connect(self.amp1Edit, QtCore.SIGNAL("editingFinished()"), - self.amp1EditText) + self.amp1Edit.editingFinished.connect(self.amp1EditText) # Control the second signal - self.freq2Edit = QtGui.QLineEdit(self) + self.freq2Edit = QtWidgets.QLineEdit(self) self.freq2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Frequency:", self.freq2Edit) - self.connect(self.freq2Edit, QtCore.SIGNAL("editingFinished()"), - self.freq2EditText) + self.freq2Edit.editingFinished.connect(self.freq2EditText) - self.amp2Edit = QtGui.QLineEdit(self) + self.amp2Edit = QtWidgets.QLineEdit(self) self.amp2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Amplitude:", self.amp2Edit) - self.connect(self.amp2Edit, QtCore.SIGNAL("editingFinished()"), - self.amp2EditText) + self.amp2Edit.editingFinished.connect(self.amp2EditText) - self.quit = QtGui.QPushButton('Close', self) + self.quit = QtWidgets.QPushButton('Close', self) self.quit.setMinimumWidth(100) self.layout.addWidget(self.quit) - self.connect(self.quit, QtCore.SIGNAL('clicked()'), - QtGui.qApp, QtCore.SLOT('quit()')) + self.quit.clicked.connect(QtWidgets.qApp.quit) def attach_signal1(self, signal): self.signal1 = signal - self.freq1Edit.setText(QtCore.QString("%1").arg(self.signal1.frequency())) - self.amp1Edit.setText(QtCore.QString("%1").arg(self.signal1.amplitude())) + self.freq1Edit.setText(("{0}").format(self.signal1.frequency())) + self.amp1Edit.setText(("{0}").format(self.signal1.amplitude())) def attach_signal2(self, signal): self.signal2 = signal - self.freq2Edit.setText(QtCore.QString("%1").arg(self.signal2.frequency())) - self.amp2Edit.setText(QtCore.QString("%1").arg(self.signal2.amplitude())) + self.freq2Edit.setText(("{0}").format(self.signal2.frequency())) + self.amp2Edit.setText(("{0}").format(self.signal2.amplitude())) def freq1EditText(self): try: @@ -150,7 +145,7 @@ class my_top_block(gr.top_block): npts = 2048 - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) ss = open(gr.prefix() + '/share/gnuradio/themes/dark.qss') sstext = ss.read() ss.close() @@ -179,8 +174,8 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) #pyWin.show() self.main_box = dialog_box(pyWin, self.ctrl_win) diff --git a/gr-qtgui/examples/pyqt_freq_f.py b/gr-qtgui/examples/pyqt_freq_f.py index 668b54d249..d7d389b736 100755 --- a/gr-qtgui/examples/pyqt_freq_f.py +++ b/gr-qtgui/examples/pyqt_freq_f.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2012 Free Software Foundation, Inc. +# Copyright 2012,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -26,10 +26,10 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: - sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n") + sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n") sys.exit(1) try: @@ -39,71 +39,66 @@ except ImportError: sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display, control): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.boxlayout.addWidget(control) self.resize(800, 500) -class control_box(QtGui.QWidget): +class control_box(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.setWindowTitle('Control Panel') self.setToolTip('Control the signals') - QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish', 10)) + QtWidgets.QToolTip.setFont(Qt.QFont('OldEnglish', 10)) - self.layout = QtGui.QFormLayout(self) + self.layout = QtWidgets.QFormLayout(self) # Control the first signal - self.freq1Edit = QtGui.QLineEdit(self) + self.freq1Edit = QtWidgets.QLineEdit(self) self.freq1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Frequency:", self.freq1Edit) - self.connect(self.freq1Edit, QtCore.SIGNAL("editingFinished()"), - self.freq1EditText) + self.freq1Edit.editingFinished.connect(self.freq1EditText) - self.amp1Edit = QtGui.QLineEdit(self) + self.amp1Edit = QtWidgets.QLineEdit(self) self.amp1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Amplitude:", self.amp1Edit) - self.connect(self.amp1Edit, QtCore.SIGNAL("editingFinished()"), - self.amp1EditText) + self.amp1Edit.editingFinished.connect(self.amp1EditText) # Control the second signal - self.freq2Edit = QtGui.QLineEdit(self) + self.freq2Edit = QtWidgets.QLineEdit(self) self.freq2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Frequency:", self.freq2Edit) - self.connect(self.freq2Edit, QtCore.SIGNAL("editingFinished()"), - self.freq2EditText) + self.freq2Edit.editingFinished.connect(self.freq2EditText) - self.amp2Edit = QtGui.QLineEdit(self) + self.amp2Edit = QtWidgets.QLineEdit(self) self.amp2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Amplitude:", self.amp2Edit) - self.connect(self.amp2Edit, QtCore.SIGNAL("editingFinished()"), - self.amp2EditText) + self.amp2Edit.editingFinished.connect(self.amp2EditText) - self.quit = QtGui.QPushButton('Close', self) + self.quit = QtWidgets.QPushButton('Close', self) self.quit.setMinimumWidth(100) self.layout.addWidget(self.quit) - self.connect(self.quit, QtCore.SIGNAL('clicked()'), - QtGui.qApp, QtCore.SLOT('quit()')) + self.quit.clicked.connect(QtWidgets.qApp.quit) def attach_signal1(self, signal): self.signal1 = signal - self.freq1Edit.setText(QtCore.QString("%1").arg(self.signal1.frequency())) - self.amp1Edit.setText(QtCore.QString("%1").arg(self.signal1.amplitude())) + self.freq1Edit.setText(("{0}").format(self.signal1.frequency())) + self.amp1Edit.setText(("{0}").format(self.signal1.amplitude())) def attach_signal2(self, signal): self.signal2 = signal - self.freq2Edit.setText(QtCore.QString("%1").arg(self.signal2.frequency())) - self.amp2Edit.setText(QtCore.QString("%1").arg(self.signal2.amplitude())) + self.freq2Edit.setText(("{0}").format(self.signal2.frequency())) + self.amp2Edit.setText(("{0}").format(self.signal2.amplitude())) def freq1EditText(self): try: @@ -145,7 +140,7 @@ class my_top_block(gr.top_block): npts = 2048 - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) src1 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0) src2 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0) @@ -169,8 +164,8 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) #pyWin.show() self.main_box = dialog_box(pyWin, self.ctrl_win) @@ -181,4 +176,3 @@ if __name__ == "__main__": tb.start() tb.qapp.exec_() tb.stop() - diff --git a/gr-qtgui/examples/pyqt_histogram_f.py b/gr-qtgui/examples/pyqt_histogram_f.py index a960275f41..81f7b9d40b 100755 --- a/gr-qtgui/examples/pyqt_histogram_f.py +++ b/gr-qtgui/examples/pyqt_histogram_f.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2013 Free Software Foundation, Inc. +# Copyright 2013,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -26,10 +26,10 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: - sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n") + sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n") sys.exit(1) try: @@ -38,87 +38,80 @@ except ImportError: sys.stderr.write("Error: Program requires gr-analog.\n") sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display, control): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.boxlayout.addWidget(control) self.resize(800, 500) -class control_box(QtGui.QWidget): +class control_box(QtWidgets.QWidget): def __init__(self, snk, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.setWindowTitle('Control Panel') self.snk = snk self.setToolTip('Control the signals') - QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish', 10)) + QtWidgets.QToolTip.setFont(Qt.QFont('OldEnglish', 10)) - self.layout = QtGui.QFormLayout(self) + self.layout = QtWidgets.QFormLayout(self) # Control the first signal - self.freq1Edit = QtGui.QLineEdit(self) + self.freq1Edit = QtWidgets.QLineEdit(self) self.freq1Edit.setMinimumWidth(100) self.layout.addRow("Sine Frequency:", self.freq1Edit) - self.connect(self.freq1Edit, QtCore.SIGNAL("editingFinished()"), - self.freq1EditText) + self.freq1Edit.editingFinished.connect(self.freq1EditText) - self.amp1Edit = QtGui.QLineEdit(self) + self.amp1Edit = QtWidgets.QLineEdit(self) self.amp1Edit.setMinimumWidth(100) self.layout.addRow("Sine Amplitude:", self.amp1Edit) - self.connect(self.amp1Edit, QtCore.SIGNAL("editingFinished()"), - self.amp1EditText) + self.amp1Edit.editingFinished.connect(self.amp1EditText) # Control the second signal - self.amp2Edit = QtGui.QLineEdit(self) + self.amp2Edit = QtWidgets.QLineEdit(self) self.amp2Edit.setMinimumWidth(100) self.layout.addRow("Noise Amplitude:", self.amp2Edit) - self.connect(self.amp2Edit, QtCore.SIGNAL("editingFinished()"), - self.amp2EditText) + self.amp2Edit.editingFinished.connect(self.amp2EditText) # Control the histogram - self.hist_npts = QtGui.QLineEdit(self) + self.hist_npts = QtWidgets.QLineEdit(self) self.hist_npts.setMinimumWidth(100) - self.hist_npts.setValidator(QtGui.QIntValidator(0, 8191)) + self.hist_npts.setValidator(Qt.QIntValidator(0, 8191)) self.hist_npts.setText("{0}".format(self.snk.nsamps())) self.layout.addRow("Number of Points:", self.hist_npts) - self.connect(self.hist_npts, QtCore.SIGNAL("editingFinished()"), - self.set_nsamps) + self.hist_npts.editingFinished.connect(self.set_nsamps) - self.hist_bins = QtGui.QLineEdit(self) + self.hist_bins = QtWidgets.QLineEdit(self) self.hist_bins.setMinimumWidth(100) - self.hist_bins.setValidator(QtGui.QIntValidator(0, 1000)) + self.hist_bins.setValidator(Qt.QIntValidator(0, 1000)) self.hist_bins.setText("{0}".format(self.snk.bins())) self.layout.addRow("Number of Bins:", self.hist_bins) - self.connect(self.hist_bins, QtCore.SIGNAL("editingFinished()"), - self.set_bins) + self.hist_bins.editingFinished.connect(self.set_bins) - self.hist_auto = QtGui.QPushButton("scale", self) + self.hist_auto = QtWidgets.QPushButton("scale", self) self.layout.addRow("Autoscale X:", self.hist_auto) - self.connect(self.hist_auto, QtCore.SIGNAL("pressed()"), - self.autoscalex) + self.hist_auto.pressed.connect(self.autoscalex) - self.quit = QtGui.QPushButton('Close', self) + self.quit = QtWidgets.QPushButton('Close', self) self.quit.setMinimumWidth(100) self.layout.addWidget(self.quit) - self.connect(self.quit, QtCore.SIGNAL('clicked()'), - QtGui.qApp, QtCore.SLOT('quit()')) + self.quit.clicked.connect(QtWidgets.qApp.quit) def attach_signal1(self, signal): self.signal1 = signal - self.freq1Edit.setText(QtCore.QString("%1").arg(self.signal1.frequency())) - self.amp1Edit.setText(QtCore.QString("%1").arg(self.signal1.amplitude())) + self.freq1Edit.setText(("{0}").format(self.signal1.frequency())) + self.amp1Edit.setText(("{0}").format(self.signal1.amplitude())) def attach_signal2(self, signal): self.signal2 = signal - self.amp2Edit.setText(QtCore.QString("%1").arg(self.signal2.amplitude())) + self.amp2Edit.setText(("{0}").format(self.signal2.amplitude())) def freq1EditText(self): try: @@ -164,7 +157,7 @@ class my_top_block(gr.top_block): npts = 2048 - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) src1 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f1, 0, 0) src2 = analog.noise_source_f(analog.GR_GAUSSIAN, 1) @@ -172,6 +165,7 @@ class my_top_block(gr.top_block): thr = blocks.throttle(gr.sizeof_float, 100*npts) self.snk1 = qtgui.histogram_sink_f(npts, 200, -5, 5, "Histogram") + self.snk1.disable_legend() self.connect(src1, (src,0)) self.connect(src2, (src,1)) @@ -185,8 +179,8 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) #pyWin.show() self.main_box = dialog_box(pyWin, self.ctrl_win) @@ -197,4 +191,3 @@ if __name__ == "__main__": tb.start() tb.qapp.exec_() tb.stop() - diff --git a/gr-qtgui/examples/pyqt_time_c.py b/gr-qtgui/examples/pyqt_time_c.py index 0162bb6ffc..b595c8ff85 100755 --- a/gr-qtgui/examples/pyqt_time_c.py +++ b/gr-qtgui/examples/pyqt_time_c.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2011,2012 Free Software Foundation, Inc. +# Copyright 2011,2012,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -26,10 +26,10 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: - sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n") + sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n") sys.exit(1) try: @@ -44,71 +44,66 @@ except ImportError: sys.stderr.write("Error: Program requires gr-channels.\n") sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display, control): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.boxlayout.addWidget(control) self.resize(800, 500) -class control_box(QtGui.QWidget): +class control_box(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.setWindowTitle('Control Panel') self.setToolTip('Control the signals') - QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish', 10)) + QtWidgets.QToolTip.setFont(Qt.QFont('OldEnglish', 10)) - self.layout = QtGui.QFormLayout(self) + self.layout = QtWidgets.QFormLayout(self) # Control the first signal - self.freq1Edit = QtGui.QLineEdit(self) + self.freq1Edit = QtWidgets.QLineEdit(self) self.freq1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Frequency:", self.freq1Edit) - self.connect(self.freq1Edit, QtCore.SIGNAL("editingFinished()"), - self.freq1EditText) + self.freq1Edit.editingFinished.connect(self.freq1EditText) - self.amp1Edit = QtGui.QLineEdit(self) + self.amp1Edit = QtWidgets.QLineEdit(self) self.amp1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Amplitude:", self.amp1Edit) - self.connect(self.amp1Edit, QtCore.SIGNAL("editingFinished()"), - self.amp1EditText) + self.amp1Edit.editingFinished.connect(self.amp1EditText) # Control the second signal - self.freq2Edit = QtGui.QLineEdit(self) + self.freq2Edit = QtWidgets.QLineEdit(self) self.freq2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Frequency:", self.freq2Edit) - self.connect(self.freq2Edit, QtCore.SIGNAL("editingFinished()"), - self.freq2EditText) + self.freq2Edit.editingFinished.connect(self.freq2EditText) - self.amp2Edit = QtGui.QLineEdit(self) + self.amp2Edit = QtWidgets.QLineEdit(self) self.amp2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Amplitude:", self.amp2Edit) - self.connect(self.amp2Edit, QtCore.SIGNAL("editingFinished()"), - self.amp2EditText) + self.amp2Edit.editingFinished.connect(self.amp2EditText) - self.quit = QtGui.QPushButton('Close', self) + self.quit = QtWidgets.QPushButton('Close', self) self.quit.setMinimumWidth(100) self.layout.addWidget(self.quit) - self.connect(self.quit, QtCore.SIGNAL('clicked()'), - QtGui.qApp, QtCore.SLOT('quit()')) + self.quit.clicked.connect(QtWidgets.qApp.quit) def attach_signal1(self, signal): self.signal1 = signal - self.freq1Edit.setText(QtCore.QString("%1").arg(self.signal1.frequency())) - self.amp1Edit.setText(QtCore.QString("%1").arg(self.signal1.amplitude())) + self.freq1Edit.setText(("{0}").format(self.signal1.frequency())) + self.amp1Edit.setText(("{0}").format(self.signal1.amplitude())) def attach_signal2(self, signal): self.signal2 = signal - self.freq2Edit.setText(QtCore.QString("%1").arg(self.signal2.frequency())) - self.amp2Edit.setText(QtCore.QString("%1").arg(self.signal2.amplitude())) + self.freq2Edit.setText(("{0}").format(self.signal2.frequency())) + self.amp2Edit.setText(("{0}").format(self.signal2.amplitude())) def freq1EditText(self): try: @@ -150,7 +145,7 @@ class my_top_block(gr.top_block): npts = 2048 - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) ss = open(gr.prefix() + '/share/gnuradio/themes/dark.qss') sstext = ss.read() ss.close() @@ -178,13 +173,14 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) # Example of using signal/slot to set the title of a curve - pyWin.connect(pyWin, QtCore.SIGNAL("setLineLabel(int, QString)"), - pyWin, QtCore.SLOT("setLineLabel(int, QString)")) - pyWin.emit(QtCore.SIGNAL("setLineLabel(int, QString)"), 0, "Re{sum}") + # FIXME: update for Qt5 + #pyWin.setLineLabel.connect(pyWin.setLineLabel) + #pyWin.emit(QtCore.SIGNAL("setLineLabel(int, QString)"), 0, "Re{sum}") + self.snk1.set_line_label(0, "Re{Sum}") self.snk1.set_line_label(1, "Im{Sum}") #self.snk1.set_line_label(2, "Re{src1}") #self.snk1.set_line_label(3, "Im{src1}") diff --git a/gr-qtgui/examples/pyqt_time_f.py b/gr-qtgui/examples/pyqt_time_f.py index b733a5a809..3689ebff54 100755 --- a/gr-qtgui/examples/pyqt_time_f.py +++ b/gr-qtgui/examples/pyqt_time_f.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2011,2012 Free Software Foundation, Inc. +# Copyright 2011,2012,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -26,10 +26,10 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: - sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n") + sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n") sys.exit(1) try: @@ -38,71 +38,66 @@ except ImportError: sys.stderr.write("Error: Program requires gr-analog.\n") sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display, control): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.boxlayout.addWidget(control) self.resize(800, 500) -class control_box(QtGui.QWidget): +class control_box(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.setWindowTitle('Control Panel') self.setToolTip('Control the signals') - QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish', 10)) + QtWidgets.QToolTip.setFont(Qt.QFont('OldEnglish', 10)) - self.layout = QtGui.QFormLayout(self) + self.layout = QtWidgets.QFormLayout(self) # Control the first signal - self.freq1Edit = QtGui.QLineEdit(self) + self.freq1Edit = QtWidgets.QLineEdit(self) self.freq1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Frequency:", self.freq1Edit) - self.connect(self.freq1Edit, QtCore.SIGNAL("editingFinished()"), - self.freq1EditText) + self.freq1Edit.editingFinished.connect(self.freq1EditText) - self.amp1Edit = QtGui.QLineEdit(self) + self.amp1Edit = QtWidgets.QLineEdit(self) self.amp1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Amplitude:", self.amp1Edit) - self.connect(self.amp1Edit, QtCore.SIGNAL("editingFinished()"), - self.amp1EditText) + self.amp1Edit.editingFinished.connect(self.amp1EditText) # Control the second signal - self.freq2Edit = QtGui.QLineEdit(self) + self.freq2Edit = QtWidgets.QLineEdit(self) self.freq2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Frequency:", self.freq2Edit) - self.connect(self.freq2Edit, QtCore.SIGNAL("editingFinished()"), - self.freq2EditText) + self.freq2Edit.editingFinished.connect(self.freq2EditText) - self.amp2Edit = QtGui.QLineEdit(self) + self.amp2Edit = QtWidgets.QLineEdit(self) self.amp2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Amplitude:", self.amp2Edit) - self.connect(self.amp2Edit, QtCore.SIGNAL("editingFinished()"), - self.amp2EditText) + self.amp2Edit.editingFinished.connect(self.amp2EditText) - self.quit = QtGui.QPushButton('Close', self) + self.quit = QtWidgets.QPushButton('Close', self) self.quit.setMinimumWidth(100) self.layout.addWidget(self.quit) - self.connect(self.quit, QtCore.SIGNAL('clicked()'), - QtGui.qApp, QtCore.SLOT('quit()')) + self.quit.clicked.connect(QtWidgets.qApp.quit) def attach_signal1(self, signal): self.signal1 = signal - self.freq1Edit.setText(QtCore.QString("%1").arg(self.signal1.frequency())) - self.amp1Edit.setText(QtCore.QString("%1").arg(self.signal1.amplitude())) + self.freq1Edit.setText(("{0}").format(self.signal1.frequency())) + self.amp1Edit.setText(("{0}").format(self.signal1.amplitude())) def attach_signal2(self, signal): self.signal2 = signal - self.freq2Edit.setText(QtCore.QString("%1").arg(self.signal2.frequency())) - self.amp2Edit.setText(QtCore.QString("%1").arg(self.signal2.amplitude())) + self.freq2Edit.setText(("{0}").format(self.signal2.frequency())) + self.amp2Edit.setText(("{0}").format(self.signal2.amplitude())) def freq1EditText(self): try: @@ -144,7 +139,7 @@ class my_top_block(gr.top_block): npts = 2048 - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) src1 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0) src2 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0) @@ -171,13 +166,14 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) # Example of using signal/slot to set the title of a curve - pyWin.connect(pyWin, QtCore.SIGNAL("setLineLabel(int, QString)"), - pyWin, QtCore.SLOT("setLineLabel(int, QString)")) - pyWin.emit(QtCore.SIGNAL("setLineLabel(int, QString)"), 0, "sum") + # FIXME: update for Qt5 + #pyWin.setLineLabel.connect(pyWin.setLineLabel) + #pyWin.emit(QtCore.SIGNAL("setLineLabel(int, QString)"), 0, "Re{sum}") + self.snk1.set_line_label(0, "Re{sum}") self.snk1.set_line_label(1, "src1") self.snk1.set_line_label(2, "src2") @@ -193,4 +189,3 @@ if __name__ == "__main__": tb.start() tb.qapp.exec_() tb.stop() - diff --git a/gr-qtgui/examples/pyqt_time_raster_b.py b/gr-qtgui/examples/pyqt_time_raster_b.py index 4cad9de601..7a94400283 100755 --- a/gr-qtgui/examples/pyqt_time_raster_b.py +++ b/gr-qtgui/examples/pyqt_time_raster_b.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2012,2013 Free Software Foundation, Inc. +# Copyright 2012,2013,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -27,18 +27,18 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: - print "Error: Program requires PyQt4 and gr-qtgui." + print "Error: Program requires PyQt5 and gr-qtgui." sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.resize(800, 500) @@ -47,7 +47,7 @@ class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) data0 = 10*[0,] + 40*[1,0] + 10*[0,] data0 += 10*[0,] + 40*[0,1] + 10*[0,] @@ -73,8 +73,8 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) self.main_box = dialog_box(pyWin) self.main_box.show() @@ -84,4 +84,3 @@ if __name__ == "__main__": tb.start() tb.qapp.exec_() tb.stop() - diff --git a/gr-qtgui/examples/pyqt_time_raster_f.py b/gr-qtgui/examples/pyqt_time_raster_f.py index c5261520db..0f9de94bcb 100755 --- a/gr-qtgui/examples/pyqt_time_raster_f.py +++ b/gr-qtgui/examples/pyqt_time_raster_f.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2012,2013 Free Software Foundation, Inc. +# Copyright 2012,2013,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -26,18 +26,18 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: - print "Error: Program requires PyQt4 and gr-qtgui." + print "Error: Program requires PyQt5 and gr-qtgui." sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.resize(800, 500) @@ -46,7 +46,7 @@ class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) data0 = 10*[0,] + 40*[1,0] + 10*[0,] data0 += 10*[0,] + 40*[0,1] + 10*[0,] @@ -72,8 +72,8 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) self.main_box = dialog_box(pyWin) self.main_box.show() @@ -83,4 +83,3 @@ if __name__ == "__main__": tb.start() tb.qapp.exec_() tb.stop() - diff --git a/gr-qtgui/examples/pyqt_waterfall_c.py b/gr-qtgui/examples/pyqt_waterfall_c.py index 8ec62fc1e2..3f7119f97f 100755 --- a/gr-qtgui/examples/pyqt_waterfall_c.py +++ b/gr-qtgui/examples/pyqt_waterfall_c.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2012 Free Software Foundation, Inc. +# Copyright 2012,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -26,7 +26,7 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n") @@ -44,71 +44,66 @@ except ImportError: sys.stderr.write("Error: Program requires gr-channels.\n") sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display, control): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.boxlayout.addWidget(control) self.resize(800, 500) -class control_box(QtGui.QWidget): +class control_box(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.setWindowTitle('Control Panel') self.setToolTip('Control the signals') - QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish', 10)) + QtWidgets.QToolTip.setFont(Qt.QFont('OldEnglish', 10)) - self.layout = QtGui.QFormLayout(self) + self.layout = QtWidgets.QFormLayout(self) # Control the first signal - self.freq1Edit = QtGui.QLineEdit(self) + self.freq1Edit = QtWidgets.QLineEdit(self) self.freq1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Frequency:", self.freq1Edit) - self.connect(self.freq1Edit, QtCore.SIGNAL("editingFinished()"), - self.freq1EditText) + self.freq1Edit.editingFinished.connect(self.freq1EditText) - self.amp1Edit = QtGui.QLineEdit(self) + self.amp1Edit = QtWidgets.QLineEdit(self) self.amp1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Amplitude:", self.amp1Edit) - self.connect(self.amp1Edit, QtCore.SIGNAL("editingFinished()"), - self.amp1EditText) + self.amp1Edit.editingFinished.connect(self.amp1EditText) # Control the second signal - self.freq2Edit = QtGui.QLineEdit(self) + self.freq2Edit = QtWidgets.QLineEdit(self) self.freq2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Frequency:", self.freq2Edit) - self.connect(self.freq2Edit, QtCore.SIGNAL("editingFinished()"), - self.freq2EditText) + self.freq2Edit.editingFinished.connect(self.freq2EditText) - self.amp2Edit = QtGui.QLineEdit(self) + self.amp2Edit = QtWidgets.QLineEdit(self) self.amp2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Amplitude:", self.amp2Edit) - self.connect(self.amp2Edit, QtCore.SIGNAL("editingFinished()"), - self.amp2EditText) + self.amp2Edit.editingFinished.connect(self.amp2EditText) - self.quit = QtGui.QPushButton('Close', self) + self.quit = QtWidgets.QPushButton('Close', self) self.quit.setMinimumWidth(100) self.layout.addWidget(self.quit) - self.connect(self.quit, QtCore.SIGNAL('clicked()'), - QtGui.qApp, QtCore.SLOT('quit()')) + self.quit.clicked.connect(QtWidgets.qApp.quit) def attach_signal1(self, signal): self.signal1 = signal - self.freq1Edit.setText(QtCore.QString("%1").arg(self.signal1.frequency())) - self.amp1Edit.setText(QtCore.QString("%1").arg(self.signal1.amplitude())) + self.freq1Edit.setText(("{0}").format(self.signal1.frequency())) + self.amp1Edit.setText(("{0}").format(self.signal1.amplitude())) def attach_signal2(self, signal): self.signal2 = signal - self.freq2Edit.setText(QtCore.QString("%1").arg(self.signal2.frequency())) - self.amp2Edit.setText(QtCore.QString("%1").arg(self.signal2.amplitude())) + self.freq2Edit.setText(("{0}").format(self.signal2.frequency())) + self.amp2Edit.setText(("{0}").format(self.signal2.amplitude())) def freq1EditText(self): try: @@ -152,7 +147,7 @@ class my_top_block(gr.top_block): taps = filter.firdes.complex_band_pass_2(1, Rs, 1500, 2500, 100, 60) - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) ss = open(gr.prefix() + '/share/gnuradio/themes/dark.qss') sstext = ss.read() ss.close() @@ -167,6 +162,8 @@ class my_top_block(gr.top_block): self.snk1 = qtgui.waterfall_sink_c(npts, filter.firdes.WIN_BLACKMAN_hARRIS, 0, Rs, "Complex Waterfall Example", 2) + self.snk1.set_color_map(0, qtgui.INTENSITY_COLOR_MAP_TYPE_COOL) + self.snk1.set_color_map(1, qtgui.INTENSITY_COLOR_MAP_TYPE_COOL) self.connect(src1, (src,0)) self.connect(src2, (src,1)) @@ -181,8 +178,8 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) #pyWin.show() self.main_box = dialog_box(pyWin, self.ctrl_win) diff --git a/gr-qtgui/examples/pyqt_waterfall_f.py b/gr-qtgui/examples/pyqt_waterfall_f.py index f9680c28cf..71c72afad6 100755 --- a/gr-qtgui/examples/pyqt_waterfall_f.py +++ b/gr-qtgui/examples/pyqt_waterfall_f.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright 2012 Free Software Foundation, Inc. +# Copyright 2012,2015 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -26,10 +26,10 @@ import sys try: from gnuradio import qtgui - from PyQt4 import QtGui, QtCore + from PyQt5 import QtWidgets, Qt import sip except ImportError: - sys.stderr.write("Error: Program requires PyQt4 and gr-qtgui.\n") + sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n") sys.exit(1) try: @@ -38,71 +38,66 @@ except ImportError: sys.stderr.write("Error: Program requires gr-analog.\n") sys.exit(1) -class dialog_box(QtGui.QWidget): +class dialog_box(QtWidgets.QWidget): def __init__(self, display, control): - QtGui.QWidget.__init__(self, None) + QtWidgets.QWidget.__init__(self, None) self.setWindowTitle('PyQt Test GUI') - self.boxlayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self) + self.boxlayout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight, self) self.boxlayout.addWidget(display, 1) self.boxlayout.addWidget(control) self.resize(800, 500) -class control_box(QtGui.QWidget): +class control_box(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.setWindowTitle('Control Panel') self.setToolTip('Control the signals') - QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish', 10)) + QtWidgets.QToolTip.setFont(Qt.QFont('OldEnglish', 10)) - self.layout = QtGui.QFormLayout(self) + self.layout = QtWidgets.QFormLayout(self) # Control the first signal - self.freq1Edit = QtGui.QLineEdit(self) + self.freq1Edit = QtWidgets.QLineEdit(self) self.freq1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Frequency:", self.freq1Edit) - self.connect(self.freq1Edit, QtCore.SIGNAL("editingFinished()"), - self.freq1EditText) + self.freq1Edit.editingFinished.connect(self.freq1EditText) - self.amp1Edit = QtGui.QLineEdit(self) + self.amp1Edit = QtWidgets.QLineEdit(self) self.amp1Edit.setMinimumWidth(100) self.layout.addRow("Signal 1 Amplitude:", self.amp1Edit) - self.connect(self.amp1Edit, QtCore.SIGNAL("editingFinished()"), - self.amp1EditText) + self.amp1Edit.editingFinished.connect(self.amp1EditText) # Control the second signal - self.freq2Edit = QtGui.QLineEdit(self) + self.freq2Edit = QtWidgets.QLineEdit(self) self.freq2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Frequency:", self.freq2Edit) - self.connect(self.freq2Edit, QtCore.SIGNAL("editingFinished()"), - self.freq2EditText) + self.freq2Edit.editingFinished.connect(self.freq2EditText) - self.amp2Edit = QtGui.QLineEdit(self) + self.amp2Edit = QtWidgets.QLineEdit(self) self.amp2Edit.setMinimumWidth(100) self.layout.addRow("Signal 2 Amplitude:", self.amp2Edit) - self.connect(self.amp2Edit, QtCore.SIGNAL("editingFinished()"), - self.amp2EditText) + self.amp2Edit.editingFinished.connect(self.amp2EditText) - self.quit = QtGui.QPushButton('Close', self) + self.quit = QtWidgets.QPushButton('Close', self) self.quit.setMinimumWidth(100) self.layout.addWidget(self.quit) - self.connect(self.quit, QtCore.SIGNAL('clicked()'), - QtGui.qApp, QtCore.SLOT('quit()')) + self.quit.clicked.connect(QtWidgets.qApp.quit) def attach_signal1(self, signal): self.signal1 = signal - self.freq1Edit.setText(QtCore.QString("%1").arg(self.signal1.frequency())) - self.amp1Edit.setText(QtCore.QString("%1").arg(self.signal1.amplitude())) + self.freq1Edit.setText(("{0}").format(self.signal1.frequency())) + self.amp1Edit.setText(("{0}").format(self.signal1.amplitude())) def attach_signal2(self, signal): self.signal2 = signal - self.freq2Edit.setText(QtCore.QString("%1").arg(self.signal2.frequency())) - self.amp2Edit.setText(QtCore.QString("%1").arg(self.signal2.amplitude())) + self.freq2Edit.setText(("{0}").format(self.signal2.frequency())) + self.amp2Edit.setText(("{0}").format(self.signal2.amplitude())) def freq1EditText(self): try: @@ -144,7 +139,7 @@ class my_top_block(gr.top_block): npts = 2048 - self.qapp = QtGui.QApplication(sys.argv) + self.qapp = QtWidgets.QApplication(sys.argv) src1 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f1, 0.1, 0) src2 = analog.sig_source_f(Rs, analog.GR_SIN_WAVE, f2, 0.1, 0) @@ -153,6 +148,8 @@ class my_top_block(gr.top_block): self.snk1 = qtgui.waterfall_sink_f(npts, filter.firdes.WIN_BLACKMAN_hARRIS, 0, Rs, "Real Waterfall Example", 2) + self.snk1.set_color_map(0, qtgui.INTENSITY_COLOR_MAP_TYPE_COOL) + self.snk1.set_color_map(1, qtgui.INTENSITY_COLOR_MAP_TYPE_COOL) self.connect(src1, (src,0)) self.connect(src2, (src,1)) @@ -167,8 +164,8 @@ class my_top_block(gr.top_block): pyQt = self.snk1.pyqwidget() # Wrap the pointer as a PyQt SIP object - # This can now be manipulated as a PyQt4.QtGui.QWidget - pyWin = sip.wrapinstance(pyQt, QtGui.QWidget) + # This can now be manipulated as a PyQt5.QtWidgets.QWidget + pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget) #pyWin.show() self.main_box = dialog_box(pyWin, self.ctrl_win) @@ -179,4 +176,3 @@ if __name__ == "__main__": tb.start() tb.qapp.exec_() tb.stop() - diff --git a/gr-qtgui/examples/qtgui_tags_viewing.grc b/gr-qtgui/examples/qtgui_tags_viewing.grc index 4c6454537a..635b1e43fa 100644 --- a/gr-qtgui/examples/qtgui_tags_viewing.grc +++ b/gr-qtgui/examples/qtgui_tags_viewing.grc @@ -1,22 +1,23 @@ - + + Wed Nov 6 11:52:40 2013 options - id - qtgui_tags_viewing + author + - _enabled - True + window_size + 1280, 1024 - title - + category + Custom - author + comment @@ -24,241 +25,260 @@ - window_size - 1280, 1024 + _enabled + True - generate_options - qt_gui + _coordinate + (10, 10) - category - Custom + _rotation + 0 - run_options - run + generate_options + qt_gui - run - True + id + qtgui_tags_viewing max_nouts 0 - realtime_scheduling + qt_qss_theme - _coordinate - (10, 10) + realtime_scheduling + - _rotation - 0 + run_command + {python} -u {filename} - - - variable - id - samp_rate + run_options + run - _enabled + run True - value - 32000 - - - _coordinate - (172, 10) + thread_safe_setters + - _rotation - 0 + title + - import + variable_qtgui_range - id - import_1 + comment + + + + value + 300 _enabled True - import - from gnuradio.digital.utils import tagged_streams + _coordinate + (814, 390) - _coordinate - (99, 72) + gui_hint + _rotation 0 - - - import id - import_0 + delay - _enabled - True + label + Delay - import - import scipy + min_len + 200 - _coordinate - (9, 71) + orient + Qt.Horizontal - _rotation + start 0 + + step + 1 + + + stop + 1000 + + + rangeType + float + + + widget + counter_slider + - import + variable_qtgui_range - id - import_2 + comment + + + + value + 30 _enabled True - import - import time + _coordinate + (936, 392) - _coordinate - (253, 71) + gui_hint + _rotation 0 - - - blocks_delay id - blocks_delay_0 + ntaps - _enabled - True + label + Num Taps - type - complex + min_len + 200 - delay - 1000 + orient + Qt.Horizontal - num_ports + start 1 - vlen + step 1 - affinity - - - - minoutbuf - 0 + stop + 100 - _coordinate - (300, 240) + rangeType + float - _rotation - 0 + widget + counter_slider - blocks_tags_strobe + variable - id - blocks_tags_strobe_0 + comment + _enabled True - type - complex + _coordinate + (172, 10) + + + _rotation + 0 + + + id + samp_rate value - pmt.intern("TEST") + 32000 + + + analog_fastnoise_source_x - nsamps - 10000 + amp + 0.004 - vlen - 1 + alias + + + + comment + affinity - minoutbuf - 0 + _enabled + True _coordinate - (16, 232) + (350, 39) _rotation 0 - - - analog_fastnoise_source_x id analog_fastnoise_source_x_0 - _enabled - True + maxoutbuf + 0 - type - complex + minoutbuf + 0 noise_type analog.GR_GAUSSIAN - amp - 0.004 + type + complex seed @@ -268,85 +288,101 @@ samples 8192 + + + blocks_add_xx + + alias + + + + comment + + affinity - minoutbuf - 0 + _enabled + True _coordinate - (350, 39) + (482, 193) _rotation 0 - - - blocks_vector_source_x id - blocks_vector_source_x_0 - - - _enabled - True + blocks_add_xx_0 type complex - vector - [0.85+0.5j, 0.85, 0.85, 0.85+0.5j] + (10000-4)*[0,] + maxoutbuf + 0 - tags - tagged_streams.make_lengthtags((1024,), (0,), "testing tags 0") + minoutbuf + 0 - repeat - True + num_inputs + 2 vlen 1 + + + blocks_add_xx - affinity + alias - minoutbuf - 0 + comment + + + + affinity + + + + _enabled + True _coordinate - (13, 132) + (707, 176) _rotation 0 - - - blocks_add_xx id - blocks_add_xx_0 - - - _enabled - True + blocks_add_xx_1 type complex + maxoutbuf + 0 + + + minoutbuf + 0 + + num_inputs 2 @@ -354,439 +390,1691 @@ vlen 1 + + + blocks_delay + + alias + + + + comment + + affinity - minoutbuf - 0 + delay + 1000 + + + _enabled + True _coordinate - (482, 193) + (300, 240) _rotation 0 - - - blocks_add_xx id - blocks_add_xx_1 + blocks_delay_0 - _enabled - True + maxoutbuf + 0 - type - complex + minoutbuf + 0 - num_inputs - 2 + num_ports + 1 + + + type + complex vlen 1 + + + blocks_delay + + alias + + + + comment + + affinity - minoutbuf - 0 + delay + int(delay) + + + _enabled + True _coordinate - (707, 176) + (890, 44) _rotation 0 - - - blocks_throttle id - blocks_throttle_0 + blocks_delay_0_0 - _enabled - True + maxoutbuf + 0 - type - complex + minoutbuf + 0 - samples_per_second - 50e3 + num_ports + 1 + + + type + complex vlen 1 + + + blocks_tags_strobe + + alias + + + + comment + + affinity - minoutbuf - 0 + _enabled + True _coordinate - (266, 149) + (16, 232) _rotation 0 - - - variable_qtgui_range id - ntaps + blocks_tags_strobe_0 - _enabled - True + key + pmt.intern("strobe") - label - Num Taps + maxoutbuf + 0 - value - 30 + minoutbuf + 0 - start - 1 + nsamps + 10000 - stop - 100 + type + complex - step - 1 + value + pmt.intern("TEST") - widget - counter_slider + vlen + 1 + + + blocks_throttle - orient - Qt.Horizontal + alias + - min_len - 200 + comment + - gui_hint + affinity + _enabled + True + + _coordinate - (936, 392) + (266, 149) _rotation 0 - - - qtgui_time_sink_x id - qtgui_time_sink_x_0_1_0 + blocks_throttle_0 - _enabled + ignoretag True + maxoutbuf + 0 + + + minoutbuf + 0 + + + samples_per_second + 50e3 + + type complex - name + vlen + 1 + + + + blocks_throttle + + alias - size - 5100 + comment + - srate - samp_rate + affinity + - ymin - -0.1 + _enabled + False - ymax - 1.5 + _coordinate + (267, 414) - nconnections - 1 + _rotation + 0 - update_time - 0.001 + id + blocks_throttle_0_0 - tr_mode - qtgui.TRIG_MODE_TAG + ignoretag + True - tr_slope - qtgui.TRIG_SLOPE_POS + maxoutbuf + 0 - tr_level - .5 + minoutbuf + 0 - tr_delay - 0.06 + samples_per_second + samp_rate - tr_chan - 0 + type + float - tr_tag - strobe + vlen + 1 + + + blocks_vector_source_x - entags - True + alias + - gui_hint - 1,1,1,1 + comment + affinity + _enabled + True + + _coordinate - (857, 173) + (13, 132) + + + _rotation + 0 + + + id + blocks_vector_source_x_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + type + complex + + + repeat + True + + + tags + tagged_streams.make_lengthtags((1024,), (0,), "testing tags 0") + + + vlen + 1 + + + vector + [0.85+0.5j, 0.85, 0.85, 0.85+0.5j] + (10000-4)*[0,] + + + + blocks_vector_source_x + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (15, 315) + + + _rotation + 0 + + + id + blocks_vector_source_x_0_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + type + complex + + + repeat + True + + + tags + tagged_streams.make_lengthtags((128,), (1500,), "second stream") + + + vlen + 1 + + + vector + 1500*[0,] + [0.25+0j,] + (10000-1500-1)*[0,] + + + + blocks_vector_source_x + + alias + + + + comment + + + + affinity + + + + _enabled + False + + + _coordinate + (15, 489) + + + _rotation + 0 + + + id + blocks_vector_source_x_0_0_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + type + float + + + repeat + True + + + tags + tagged_streams.make_lengthtags((128,), (110,), "second stream") + + + vlen + 1 + + + vector + 10*[0,] + [0.5,] + (100-10-1)*[0,] + + + + blocks_vector_source_x + + alias + + + + comment + + + + affinity + + + + _enabled + False + + + _coordinate + (15, 398) + + + _rotation + 0 + + + id + blocks_vector_source_x_0_1 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + type + float + + + repeat + True + + + tags + tagged_streams.make_lengthtags((1024,), (0,), "testing tags") + + + vlen + 1 + + + vector + [-0.85,] + (100-1)*[0,] + + + + fir_filter_xxx + + alias + + + + comment + + + + affinity + + + + decim + 1 + + + _enabled + True + + + _coordinate + (660, 76) + + + _rotation + 0 + + + id + fir_filter_xxx_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + samp_delay + int(ntaps) + + + taps + int(ntaps)*[1,]+[1,] + + + type + ccc + + + + import + + alias + + + + comment + + + + _enabled + True + + + _coordinate + (9, 71) + + + _rotation + 0 + + + id + import_0 + + + import + import scipy + + + + import + + alias + + + + comment + + + + _enabled + True + + + _coordinate + (99, 72) + + + _rotation + 0 + + + id + import_1 + + + import + from gnuradio.digital.utils import tagged_streams + + + + import + + alias + + + + comment + + + + _enabled + True + + + _coordinate + (253, 71) + + + _rotation + 0 + + + id + import_2 + + + import + import time + + + + qtgui_time_sink_x + + autoscale + False + + + alias + + + + comment + + + + ctrlpanel + False + + + affinity + + + + entags + True + + + _enabled + True + + + _coordinate + (860, 298) + + + gui_hint + + + + _rotation + 0 + + + grid + False + + + id + qtgui_time_sink_x_0 + + + legend + True + + + alpha1 + 1.0 + + + color1 + "blue" + + + label1 + + + + marker1 + -1 + + + style1 + 1 + + + width1 + 1 + + + alpha10 + 1.0 + + + color10 + "blue" + + + label10 + + + + marker10 + -1 + + + style10 + 1 + + + width10 + 1 + + + alpha2 + 1.0 + + + color2 + "red" + + + label2 + + + + marker2 + -1 + + + style2 + 1 + + + width2 + 1 + + + alpha3 + 1.0 + + + color3 + "green" + + + label3 + + + + marker3 + -1 + + + style3 + 1 + + + width3 + 1 + + + alpha4 + 1.0 + + + color4 + "black" + + + label4 + + + + marker4 + -1 + + + style4 + 1 + + + width4 + 1 + + + alpha5 + 1.0 + + + color5 + "cyan" + + + label5 + + + + marker5 + -1 + + + style5 + 1 + + + width5 + 1 + + + alpha6 + 1.0 + + + color6 + "magenta" + + + label6 + + + + marker6 + -1 + + + style6 + 1 + + + width6 + 1 + + + alpha7 + 1.0 + + + color7 + "yellow" + + + label7 + + + + marker7 + -1 + + + style7 + 1 + + + width7 + 1 + + + alpha8 + 1.0 + + + color8 + "dark red" + + + label8 + + + + marker8 + -1 + + + style8 + 1 + + + width8 + 1 + + + alpha9 + 1.0 + + + color9 + "dark green" + + + label9 + + + + marker9 + -1 + + + style9 + 1 + + + width9 + 1 + + + name + + + + nconnections + 2 + + + size + 18000 + + + srate + samp_rate + + + tr_chan + 0 + + + tr_delay + 0 + + + tr_level + 0.1 + + + tr_mode + qtgui.TRIG_MODE_NORM + + + tr_slope + qtgui.TRIG_SLOPE_POS + + + tr_tag + "" + + + type + complex + + + update_time + 0.10 + + + ylabel + Amplitude + + + yunit + "" + + + ymax + 1.5 + + + ymin + -0.1 + + + + qtgui_time_sink_x + + autoscale + False + + + alias + + + + comment + + + + ctrlpanel + False + + + affinity + + + + entags + True + + + _enabled + False + + + _coordinate + (475, 444) + + + gui_hint + + + + _rotation + 0 + + + grid + False + + + id + qtgui_time_sink_x_0_0 + + + legend + True + + + alpha1 + 1.0 + + + color1 + "blue" + + + label1 + + + + marker1 + -1 + + + style1 + 1 + + + width1 + 1 + + + alpha10 + 1.0 + + + color10 + "blue" + + + label10 + + + + marker10 + -1 + + + style10 + 1 + + + width10 + 1 + + + alpha2 + 1.0 + + + color2 + "red" + + + label2 + + + + marker2 + -1 + + + style2 + 1 + + + width2 + 1 + + + alpha3 + 1.0 + + + color3 + "green" + + + label3 + + + + marker3 + -1 + + + style3 + 1 + + + width3 + 1 + + + alpha4 + 1.0 + + + color4 + "black" + + + label4 + + + + marker4 + -1 + + + style4 + 1 + + + width4 + 1 + + + alpha5 + 1.0 + + + color5 + "cyan" + + + label5 + + + + marker5 + -1 + + + style5 + 1 + + + width5 + 1 + + + alpha6 + 1.0 + + + color6 + "magenta" + + + label6 + + + + marker6 + -1 + + + style6 + 1 + + + width6 + 1 + + + alpha7 + 1.0 + + + color7 + "yellow" + + + label7 + + + + marker7 + -1 + + + style7 + 1 + + + width7 + 1 + + + alpha8 + 1.0 + + + color8 + "dark red" + + + label8 + + + + marker8 + -1 + + + style8 + 1 + + + width8 + 1 + + + alpha9 + 1.0 + + + color9 + "dark green" + + + label9 + + + + marker9 + -1 + + + style9 + 1 + + + width9 + 1 + + + name + + + + nconnections + 2 + + + size + 1024 + + + srate + samp_rate + + + tr_chan + 1 + + + tr_delay + 0 + + + tr_level + 0.0 + + + tr_mode + qtgui.TRIG_MODE_TAG + + + tr_slope + qtgui.TRIG_SLOPE_POS + + + tr_tag + second stream + + + type + float + + + update_time + 0.10 + + + ylabel + Amplitude + + + yunit + "" + + + ymax + 1 + + + ymin + -1 + + + + qtgui_time_sink_x + + autoscale + False + + + alias + + + + comment + + + + ctrlpanel + False + + + affinity + + + + entags + True + + + _enabled + True + + + _coordinate + (1072, 77) + + + gui_hint + 1,0,1,1 + + + _rotation + 0 + + + grid + False + + + id + qtgui_time_sink_x_0_1 + + + legend + True + + + alpha1 + 1.0 + + + color1 + "blue" + + + label1 + + + + marker1 + -1 + + + style1 + 1 + + + width1 + 1 + + + alpha10 + 1.0 + + + color10 + "blue" + + + label10 + + + + marker10 + -1 + + + style10 + 1 - _rotation - 0 + width10 + 1 - - - blocks_vector_source_x - id - blocks_vector_source_x_0_0 + alpha2 + 1.0 - _enabled - True + color2 + "red" - type - complex + label2 + - vector - 1500*[0,] + [0.25+0j,] + (10000-1500-1)*[0,] + marker2 + -1 - tags - tagged_streams.make_lengthtags((128,), (1500,), "second stream") + style2 + 1 - repeat - True + width2 + 1 - vlen - 1 + alpha3 + 1.0 - affinity - + color3 + "green" - minoutbuf - 0 + label3 + - _coordinate - (15, 315) + marker3 + -1 - _rotation - 0 + style3 + 1 - - - qtgui_time_sink_x - id - qtgui_time_sink_x_0 + width3 + 1 - _enabled - True + alpha4 + 1.0 - type - complex + color4 + "black" - name + label4 - size - 18000 + marker4 + -1 - srate - samp_rate + style4 + 1 - ymin - -0.1 + width4 + 1 - ymax - 1.5 + alpha5 + 1.0 - nconnections - 2 + color5 + "cyan" - update_time - 0.10 + label5 + - tr_mode - qtgui.TRIG_MODE_NORM + marker5 + -1 - tr_slope - qtgui.TRIG_SLOPE_POS + style5 + 1 - tr_level - 0.1 + width5 + 1 - tr_delay - 0 + alpha6 + 1.0 - tr_chan - 0 + color6 + "magenta" - tr_tag - "" + label6 + - entags - True + marker6 + -1 - gui_hint - + style6 + 1 - affinity - + width6 + 1 - _coordinate - (860, 298) + alpha7 + 1.0 - _rotation - 0 + color7 + "yellow" - - - fir_filter_xxx - id - fir_filter_xxx_0 + label7 + - _enabled - True + marker7 + -1 - type - ccc + style7 + 1 - decim + width7 1 - taps - int(ntaps)*[1,]+[1,] + alpha8 + 1.0 - samp_delay - int(ntaps) + color8 + "dark red" - affinity + label8 - minoutbuf - 0 + marker8 + -1 - _coordinate - (660, 76) + style8 + 1 - _rotation - 0 + width8 + 1 - - - qtgui_time_sink_x - id - qtgui_time_sink_x_0_1 + alpha9 + 1.0 - _enabled - True + color9 + "dark green" - type - complex + label9 + + + + marker9 + -1 + + + style9 + 1 + + + width9 + 1 name + nconnections + 2 + + size 1000 @@ -795,20 +2083,16 @@ samp_rate - ymin - -0.1 - - - ymax - 4.5 + tr_chan + 0 - nconnections - 2 + tr_delay + 0.015 - update_time - 0.10 + tr_level + .1 tr_mode @@ -819,379 +2103,394 @@ qtgui.TRIG_SLOPE_POS - tr_level - .1 + tr_tag + "" - tr_delay - 0.015 + type + complex - tr_chan - 0 + update_time + 0.10 - tr_tag + ylabel + Amplitude + + + yunit "" - entags - True + ymax + 4.5 - gui_hint - 1,0,1,1 + ymin + -0.1 + + + + qtgui_time_sink_x + + autoscale + False + + + alias + + + + comment + + + + ctrlpanel + False affinity + entags + True + + + _enabled + True + + _coordinate - (1072, 77) + (857, 173) + + + gui_hint + 1,1,1,1 _rotation 0 - - - qtgui_time_sink_x - id - qtgui_time_sink_x_0_0 + grid + False - _enabled - False + id + qtgui_time_sink_x_0_1_0 - type - float + legend + True - name - + alpha1 + 1.0 - size - 1024 + color1 + "blue" - srate - samp_rate + label1 + - ymin + marker1 -1 - ymax + style1 1 - nconnections - 2 + width1 + 1 - update_time - 0.10 + alpha10 + 1.0 - tr_mode - qtgui.TRIG_MODE_TAG + color10 + "blue" - tr_slope - qtgui.TRIG_SLOPE_POS + label10 + - tr_level - 0.0 + marker10 + -1 + + + style10 + 1 + + + width10 + 1 + + + alpha2 + 1.0 + + + color2 + "red" + + + label2 + - tr_delay - 0 + marker2 + -1 - tr_chan + style2 1 - tr_tag - second stream + width2 + 1 - entags - True + alpha3 + 1.0 - gui_hint - + color3 + "green" - affinity + label3 - _coordinate - (475, 444) + marker3 + -1 - _rotation - 0 + style3 + 1 - - - blocks_vector_source_x - id - blocks_vector_source_x_0_0_0 + width3 + 1 - _enabled - False + alpha4 + 1.0 - type - float + color4 + "black" - vector - 10*[0,] + [0.5,] + (100-10-1)*[0,] + label4 + - tags - tagged_streams.make_lengthtags((128,), (110,), "second stream") + marker4 + -1 - repeat - True + style4 + 1 - vlen + width4 1 - affinity - + alpha5 + 1.0 - minoutbuf - 0 + color5 + "cyan" - _coordinate - (15, 489) + label5 + - _rotation - 0 + marker5 + -1 - - - blocks_vector_source_x - id - blocks_vector_source_x_0_1 + style5 + 1 - _enabled - False + width5 + 1 - type - float + alpha6 + 1.0 - vector - [-0.85,] + (100-1)*[0,] + color6 + "magenta" - tags - tagged_streams.make_lengthtags((1024,), (0,), "testing tags") + label6 + - repeat - True + marker6 + -1 - vlen + style6 1 - affinity - + width6 + 1 - minoutbuf - 0 + alpha7 + 1.0 - _coordinate - (15, 398) + color7 + "yellow" - _rotation - 0 + label7 + - - - blocks_throttle - id - blocks_throttle_0_0 + marker7 + -1 - _enabled - False + style7 + 1 - type - float + width7 + 1 - samples_per_second - samp_rate + alpha8 + 1.0 - vlen - 1 + color8 + "dark red" - affinity + label8 - minoutbuf - 0 + marker8 + -1 - _coordinate - (267, 414) + style8 + 1 - _rotation - 0 + width8 + 1 - - - blocks_delay - id - blocks_delay_0_0 + alpha9 + 1.0 - _enabled - True + color9 + "dark green" - type - complex + label9 + - delay - int(delay) + marker9 + -1 - num_ports + style9 1 - vlen + width9 1 - affinity + name - minoutbuf - 0 - - - _coordinate - (890, 44) + nconnections + 1 - _rotation - 0 + size + 5100 - - - variable_qtgui_range - id - delay + srate + samp_rate - _enabled - True + tr_chan + 0 - label - Delay + tr_delay + 0.06 - value - 300 + tr_level + .5 - start - 0 + tr_mode + qtgui.TRIG_MODE_TAG - stop - 1000 + tr_slope + qtgui.TRIG_SLOPE_POS - step - 1 + tr_tag + strobe - widget - counter_slider + type + complex - orient - Qt.Horizontal + update_time + 0.001 - min_len - 200 + ylabel + Amplitude - gui_hint - + yunit + "" - _coordinate - (814, 390) + ymax + 1.5 - _rotation - 0 + ymin + -0.1 - blocks_vector_source_x_0 - blocks_throttle_0 - 0 - 0 - - - blocks_throttle_0 - blocks_add_xx_0 - 0 - 0 - - - blocks_delay_0 - blocks_add_xx_0 - 0 - 1 - - analog_fastnoise_source_x_0 blocks_add_xx_1 0 @@ -1210,28 +2509,28 @@ 0 - fir_filter_xxx_0 - blocks_delay_0_0 + blocks_add_xx_1 + qtgui_time_sink_x_0 0 0 - blocks_delay_0_0 - qtgui_time_sink_x_0_1 + blocks_add_xx_1 + qtgui_time_sink_x_0_1_0 0 0 - fir_filter_xxx_0 - qtgui_time_sink_x_0_1 + blocks_delay_0 + blocks_add_xx_0 0 1 - blocks_vector_source_x_0_0 - qtgui_time_sink_x_0 + blocks_delay_0_0 + qtgui_time_sink_x_0_1 0 - 1 + 0 blocks_tags_strobe_0 @@ -1240,28 +2539,34 @@ 0 - blocks_add_xx_1 - qtgui_time_sink_x_0_1_0 + blocks_throttle_0 + blocks_add_xx_0 0 0 - blocks_add_xx_1 - qtgui_time_sink_x_0 + blocks_throttle_0_0 + qtgui_time_sink_x_0_0 0 0 - blocks_vector_source_x_0_0_0 - qtgui_time_sink_x_0_0 + blocks_vector_source_x_0 + blocks_throttle_0 + 0 + 0 + + + blocks_vector_source_x_0_0 + qtgui_time_sink_x_0 0 1 - blocks_throttle_0_0 + blocks_vector_source_x_0_0_0 qtgui_time_sink_x_0_0 0 - 0 + 1 blocks_vector_source_x_0_1 @@ -1269,4 +2574,16 @@ 0 0 + + fir_filter_xxx_0 + blocks_delay_0_0 + 0 + 0 + + + fir_filter_xxx_0 + qtgui_time_sink_x_0_1 + 0 + 1 + -- 2.11.0