mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
10723 lines
352 KiB
Diff
10723 lines
352 KiB
Diff
From b0f4ebcf6d656c829747dded592e182144098d42 Mon Sep 17 00:00:00 2001
|
|
From: Paul Cercueil <paul.cercueil@analog.com>
|
|
Date: Tue, 29 Sep 2015 13:57:13 +0200
|
|
Subject: [PATCH 01/22] CMake: Update required minimum version to 2.8.12
|
|
|
|
This is required to use the Qt5-specific macros.
|
|
|
|
Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
|
|
---
|
|
CMakeLists.txt | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 59e3c886c4..ae6c1e1d49 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -27,7 +27,7 @@
|
|
########################################################################
|
|
# Make sure this version matches ${GR_CMAKE_MIN_VERSION} (a variable can't be
|
|
# used here).
|
|
-cmake_minimum_required(VERSION 2.6)
|
|
+cmake_minimum_required(VERSION 2.8.12)
|
|
project(gnuradio CXX C)
|
|
enable_testing()
|
|
|
|
--
|
|
2.11.0
|
|
|
|
From 25dedc0a2a7f0790f280770a7d22e9650ae2adbf Mon Sep 17 00:00:00 2001
|
|
From: Paul Cercueil <paul.cercueil@analog.com>
|
|
Date: Tue, 29 Sep 2015 13:30:59 +0200
|
|
Subject: [PATCH 02/22] CMake: FindQwt: Find the Qt5 version of QWT instead of
|
|
the Qt4 version
|
|
|
|
Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
|
|
---
|
|
cmake/Modules/FindQwt.cmake | 6 +++---
|
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/cmake/Modules/FindQwt.cmake b/cmake/Modules/FindQwt.cmake
|
|
index da8bbe9049..2cffbe66f4 100644
|
|
--- a/cmake/Modules/FindQwt.cmake
|
|
+++ b/cmake/Modules/FindQwt.cmake
|
|
@@ -11,10 +11,10 @@ find_path(QWT_INCLUDE_DIRS
|
|
${CMAKE_INSTALL_PREFIX}/include/qwt
|
|
${CMAKE_PREFIX_PATH}/include/qwt
|
|
PATHS
|
|
- /usr/local/include/qwt-qt4
|
|
+ /usr/local/include/qwt-qt5
|
|
/usr/local/include/qwt
|
|
/usr/include/qwt6
|
|
- /usr/include/qwt-qt4
|
|
+ /usr/include/qwt-qt5
|
|
/usr/include/qwt
|
|
/usr/include/qwt5
|
|
/opt/local/include/qwt
|
|
@@ -23,7 +23,7 @@ find_path(QWT_INCLUDE_DIRS
|
|
)
|
|
|
|
find_library (QWT_LIBRARIES
|
|
- NAMES qwt6 qwt6-qt4 qwt qwt-qt4 qwt5 qwtd5
|
|
+ NAMES qwt6 qwt6-qt5 qwt qwt-qt5
|
|
HINTS
|
|
${CMAKE_INSTALL_PREFIX}/lib
|
|
${CMAKE_INSTALL_PREFIX}/lib64
|
|
--
|
|
2.11.0
|
|
|
|
From 1f78d5f2176de31809dc34fb38945c181390cdef Mon Sep 17 00:00:00 2001
|
|
From: Paul Cercueil <paul.cercueil@analog.com>
|
|
Date: Tue, 29 Sep 2015 11:25:47 +0200
|
|
Subject: [PATCH 03/22] gr-qtgui: update for Qt5
|
|
|
|
This commit switch the gr-qtgui blocks from being usable with Qt4 to
|
|
being usable with Qt5.
|
|
|
|
Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
|
|
---
|
|
gr-qtgui/CMakeLists.txt | 11 ++++-------
|
|
gr-qtgui/grc/qtgui_ber_sink_b.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_check_box.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_chooser.xml | 4 ++--
|
|
gr-qtgui/grc/qtgui_const_sink_x.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_entry.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_freq_sink_x.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_histogram_sink_x.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_label.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_number_sink.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_push_button.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_sink_x.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_tab_widget.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_time_raster_x.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_time_sink_x.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_vector_sink_f.xml | 2 +-
|
|
gr-qtgui/grc/qtgui_waterfall_sink_x.xml | 2 +-
|
|
gr-qtgui/include/gnuradio/qtgui/form_menus.h | 1 +
|
|
gr-qtgui/lib/CMakeLists.txt | 8 ++++----
|
|
gr-qtgui/lib/SpectrumGUIClass.cc | 1 -
|
|
gr-qtgui/lib/const_sink_c_impl.cc | 4 ----
|
|
gr-qtgui/lib/freq_sink_c_impl.cc | 4 ----
|
|
gr-qtgui/lib/freq_sink_f_impl.cc | 4 ----
|
|
gr-qtgui/lib/histogram_sink_f_impl.cc | 4 ----
|
|
gr-qtgui/lib/sink_c_impl.cc | 4 ----
|
|
gr-qtgui/lib/sink_f_impl.cc | 4 ----
|
|
gr-qtgui/lib/time_raster_sink_b_impl.cc | 4 ----
|
|
gr-qtgui/lib/time_raster_sink_f_impl.cc | 4 ----
|
|
gr-qtgui/lib/time_sink_c_impl.cc | 4 ----
|
|
gr-qtgui/lib/time_sink_f_impl.cc | 4 ----
|
|
gr-qtgui/lib/vector_sink_f_impl.cc | 4 ----
|
|
gr-qtgui/lib/waterfall_sink_c_impl.cc | 4 ----
|
|
gr-qtgui/lib/waterfall_sink_f_impl.cc | 4 ----
|
|
gr-qtgui/python/qtgui/range.py | 26 +++++++++++++-------------
|
|
34 files changed, 39 insertions(+), 94 deletions(-)
|
|
|
|
--- a/gr-qtgui/CMakeLists.txt
|
|
+++ b/gr-qtgui/CMakeLists.txt
|
|
@@ -22,14 +22,14 @@
|
|
########################################################################
|
|
include(GrBoost)
|
|
|
|
-find_package(Qt4 4.2.0 COMPONENTS QtCore QtGui)
|
|
+find_package(Qt5Widgets)
|
|
|
|
find_package(Qwt)
|
|
|
|
find_package(PythonLibs 2)
|
|
|
|
include(GrPython)
|
|
-GR_PYTHON_CHECK_MODULE("PyQt4" PyQt4 True PYQT4_FOUND)
|
|
+GR_PYTHON_CHECK_MODULE("PyQt5" PyQt5 True PYQT5_FOUND)
|
|
|
|
########################################################################
|
|
# Register component
|
|
@@ -37,13 +37,13 @@
|
|
include(GrComponent)
|
|
if(NOT CMAKE_CROSSCOMPILING)
|
|
set(qt_gui_python_deps
|
|
- PYQT4_FOUND
|
|
+ PYQT5_FOUND
|
|
)
|
|
endif(NOT CMAKE_CROSSCOMPILING)
|
|
|
|
GR_REGISTER_COMPONENT("gr-qtgui" ENABLE_GR_QTGUI
|
|
Boost_FOUND
|
|
- QT4_FOUND
|
|
+ Qt5Widgets_FOUND
|
|
QWT_FOUND
|
|
ENABLE_VOLK
|
|
ENABLE_GNURADIO_RUNTIME
|
|
@@ -66,9 +66,6 @@
|
|
########################################################################
|
|
if(ENABLE_GR_QTGUI)
|
|
|
|
-# populate the environment with QT variables
|
|
-include(GrSetupQt4)
|
|
-
|
|
########################################################################
|
|
# Setup CPack components
|
|
########################################################################
|
|
--- a/gr-qtgui/grc/qtgui_ber_sink_b.xml
|
|
+++ b/gr-qtgui/grc/qtgui_ber_sink_b.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Bercurve Sink</name>
|
|
<key>qtgui_bercurve_sink</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<import>import numpy</import>
|
|
--- a/gr-qtgui/grc/qtgui_check_box.xml
|
|
+++ b/gr-qtgui/grc/qtgui_check_box.xml
|
|
@@ -8,7 +8,7 @@
|
|
<block>
|
|
<name>QT GUI Check Box</name>
|
|
<key>variable_qtgui_check_box</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = '_%s_check_box'%$id
|
|
#if not $label()
|
|
--- a/gr-qtgui/grc/qtgui_chooser.xml
|
|
+++ b/gr-qtgui/grc/qtgui_chooser.xml
|
|
@@ -8,8 +8,8 @@
|
|
<block>
|
|
<name>QT GUI Chooser</name>
|
|
<key>variable_qtgui_chooser</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
- <import>from PyQt4.QtCore import QObject, pyqtSlot</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt5.QtCore import QObject, pyqtSlot</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#slurp
|
|
#set $all_options = [$option0, $option1, $option2, $option3, $option4][:int($num_opts())]
|
|
--- a/gr-qtgui/grc/qtgui_const_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_const_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Constellation Sink</name>
|
|
<key>qtgui_const_sink_x</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
--- a/gr-qtgui/grc/qtgui_entry.xml
|
|
+++ b/gr-qtgui/grc/qtgui_entry.xml
|
|
@@ -8,7 +8,7 @@
|
|
<block>
|
|
<name>QT GUI Entry</name>
|
|
<key>variable_qtgui_entry</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import eng_notation</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = 'self._%s_tool_bar'%$id
|
|
--- a/gr-qtgui/grc/qtgui_freq_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_freq_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Frequency Sink</name>
|
|
<key>qtgui_freq_sink_x</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
--- a/gr-qtgui/grc/qtgui_histogram_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_histogram_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Histogram Sink</name>
|
|
<key>qtgui_histogram_sink_x</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
--- a/gr-qtgui/grc/qtgui_label.xml
|
|
+++ b/gr-qtgui/grc/qtgui_label.xml
|
|
@@ -9,7 +9,7 @@
|
|
<block>
|
|
<name>QT GUI Label</name>
|
|
<key>variable_qtgui_label</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import eng_notation</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = 'self._%s_tool_bar'%$id
|
|
--- a/gr-qtgui/grc/qtgui_number_sink.xml
|
|
+++ b/gr-qtgui/grc/qtgui_number_sink.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Number Sink</name>
|
|
<key>qtgui_number_sink</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
--- a/gr-qtgui/grc/qtgui_push_button.xml
|
|
+++ b/gr-qtgui/grc/qtgui_push_button.xml
|
|
@@ -8,7 +8,7 @@
|
|
<block>
|
|
<name>QT GUI Push Button</name>
|
|
<key>variable_qtgui_push_button</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = '_%s_push_button'%$id
|
|
#if not $label()
|
|
--- a/gr-qtgui/grc/qtgui_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Sink</name>
|
|
<key>qtgui_sink_x</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
--- a/gr-qtgui/grc/qtgui_tab_widget.xml
|
|
+++ b/gr-qtgui/grc/qtgui_tab_widget.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Tab Widget</name>
|
|
<key>qtgui_tab_widget</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<make>#set $win = 'self.%s'%$id
|
|
Qt.QTabWidget()
|
|
#set $all_labels = [$label0, $label1, $label2, $label3, $label4,
|
|
--- a/gr-qtgui/grc/qtgui_time_raster_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_time_raster_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Time Raster Sink</name>
|
|
<key>qtgui_time_raster_sink_x</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
--- a/gr-qtgui/grc/qtgui_time_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_time_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Time Sink</name>
|
|
<key>qtgui_time_sink_x</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
--- a/gr-qtgui/grc/qtgui_vector_sink_f.xml
|
|
+++ b/gr-qtgui/grc/qtgui_vector_sink_f.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Vector Sink</name>
|
|
<key>qtgui_vector_sink_f</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
--- a/gr-qtgui/grc/qtgui_waterfall_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_waterfall_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Waterfall Sink</name>
|
|
<key>qtgui_waterfall_sink_x</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
--- a/gr-qtgui/include/gnuradio/qtgui/form_menus.h
|
|
+++ b/gr-qtgui/include/gnuradio/qtgui/form_menus.h
|
|
@@ -28,6 +28,7 @@
|
|
#include <QtGui/QtGui>
|
|
#include <QtGui/QIntValidator>
|
|
#include <QtGui/QDoubleValidator>
|
|
+#include <QtWidgets/QtWidgets>
|
|
#include <qwt_symbol.h>
|
|
#include <gnuradio/filter/firdes.h>
|
|
#include <gnuradio/qtgui/qtgui_types.h>
|
|
--- a/gr-qtgui/lib/CMakeLists.txt
|
|
+++ b/gr-qtgui/lib/CMakeLists.txt
|
|
@@ -45,8 +45,8 @@
|
|
${qtgui_mod_includedir}/VectorDisplayPlot.h
|
|
edit_box_msg_impl.h
|
|
)
|
|
-QT4_WRAP_CPP(qtgui_moc_sources ${qtgui_moc_hdrs})
|
|
-QT4_WRAP_UI(qtgui_ui_hdrs spectrumdisplayform.ui)
|
|
+QT5_WRAP_CPP(qtgui_moc_sources ${qtgui_moc_hdrs})
|
|
+QT5_WRAP_UI(qtgui_ui_hdrs spectrumdisplayform.ui)
|
|
|
|
#FIXME the sources expect <foo>.ui.h, but the macros generate ui_foo.h
|
|
#avoid changing the sources by generating the header with the include
|
|
@@ -127,7 +127,7 @@
|
|
${GNURADIO_RUNTIME_INCLUDE_DIRS}
|
|
${VOLK_INCLUDE_DIRS}
|
|
${QWT_INCLUDE_DIRS}
|
|
- ${QT_INCLUDE_DIRS}
|
|
+ ${Qt5Widgets_INCLUDE_DIRS}
|
|
${FFTW3F_INCLUDE_DIRS}
|
|
${Boost_INCLUDE_DIRS}
|
|
${PYTHON_INCLUDE_DIRS}
|
|
@@ -154,7 +154,7 @@
|
|
gnuradio-filter
|
|
${VOLK_LIBRARIES}
|
|
${QWT_LIBRARIES}
|
|
- ${QT_LIBRARIES}
|
|
+ ${Qt5Widgets_LIBRARIES}
|
|
${FFTW3F_LIBRARIES}
|
|
)
|
|
if (WIN32)
|
|
--- a/gr-qtgui/lib/SpectrumGUIClass.cc
|
|
+++ b/gr-qtgui/lib/SpectrumGUIClass.cc
|
|
@@ -26,7 +26,6 @@
|
|
#include <gnuradio/qtgui/SpectrumGUIClass.h>
|
|
//Added by qt3to4:
|
|
#include <QEvent>
|
|
-#include <QCustomEvent>
|
|
#include <volk/volk.h>
|
|
|
|
const long SpectrumGUIClass::MAX_FFT_SIZE = 32768;
|
|
--- a/gr-qtgui/lib/const_sink_c_impl.cc
|
|
+++ b/gr-qtgui/lib/const_sink_c_impl.cc
|
|
@@ -127,10 +127,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/freq_sink_c_impl.cc
|
|
+++ b/gr-qtgui/lib/freq_sink_c_impl.cc
|
|
@@ -156,10 +156,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/freq_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/freq_sink_f_impl.cc
|
|
@@ -154,10 +154,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/histogram_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/histogram_sink_f_impl.cc
|
|
@@ -115,10 +115,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/sink_c_impl.cc
|
|
+++ b/gr-qtgui/lib/sink_c_impl.cc
|
|
@@ -131,10 +131,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/sink_f_impl.cc
|
|
@@ -131,10 +131,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/time_raster_sink_b_impl.cc
|
|
+++ b/gr-qtgui/lib/time_raster_sink_b_impl.cc
|
|
@@ -130,10 +130,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/time_raster_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/time_raster_sink_f_impl.cc
|
|
@@ -128,10 +128,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/time_sink_c_impl.cc
|
|
+++ b/gr-qtgui/lib/time_sink_c_impl.cc
|
|
@@ -134,10 +134,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/time_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/time_sink_f_impl.cc
|
|
@@ -129,10 +129,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/vector_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/vector_sink_f_impl.cc
|
|
@@ -140,10 +140,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/waterfall_sink_c_impl.cc
|
|
+++ b/gr-qtgui/lib/waterfall_sink_c_impl.cc
|
|
@@ -159,10 +159,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/waterfall_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/waterfall_sink_f_impl.cc
|
|
@@ -155,10 +155,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/python/qtgui/range.py
|
|
+++ b/gr-qtgui/python/qtgui/range.py
|
|
@@ -21,7 +21,7 @@
|
|
# Boston, MA 02110-1301, USA.
|
|
#
|
|
|
|
-from PyQt4 import Qt, QtCore, QtGui
|
|
+from PyQt5 import Qt, QtCore, QtWidgets
|
|
import util
|
|
|
|
class Range(object):
|
|
@@ -64,10 +64,10 @@
|
|
return (val*self.step+self.min)
|
|
|
|
|
|
-class RangeWidget(QtGui.QWidget):
|
|
+class RangeWidget(QtWidgets.QWidget):
|
|
def __init__(self, ranges, slot, label, style, rangeType=float):
|
|
""" Creates the QT Range widget """
|
|
- QtGui.QWidget.__init__(self)
|
|
+ QtWidgets.QWidget.__init__(self)
|
|
|
|
self.range = ranges
|
|
self.style = style
|
|
@@ -98,10 +98,10 @@
|
|
layout.addWidget(self.d_widget)
|
|
self.setLayout(layout)
|
|
|
|
- class Dial(QtGui.QDial):
|
|
+ class Dial(QtWidgets.QDial):
|
|
""" Creates the range using a dial """
|
|
def __init__(self, parent, ranges, slot, rangeType=float):
|
|
- QtGui.QDial.__init__(self, parent)
|
|
+ QtWidgets.QDial.__init__(self, parent)
|
|
|
|
self.rangeType = rangeType
|
|
|
|
@@ -124,10 +124,10 @@
|
|
val = self.range.map_range(value)
|
|
self.notifyChanged(self.rangeType(val))
|
|
|
|
- class Slider(QtGui.QSlider):
|
|
+ class Slider(QtWidgets.QSlider):
|
|
""" Creates the range using a slider """
|
|
def __init__(self, parent, ranges, slot, rangeType=float):
|
|
- QtGui.QSlider.__init__(self, QtCore.Qt.Horizontal, parent)
|
|
+ QtWidgets.QSlider.__init__(self, QtCore.Qt.Horizontal, parent)
|
|
|
|
self.rangeType = rangeType
|
|
|
|
@@ -166,18 +166,18 @@
|
|
event.accept()
|
|
# Use repaint rather than calling the super mousePressEvent.
|
|
# Calling super causes issue where slider jumps to wrong value.
|
|
- QtGui.QSlider.repaint(self)
|
|
+ QtWidgets.QSlider.repaint(self)
|
|
|
|
def mouseMoveEvent(self, event):
|
|
new = self.minimum() + ((self.maximum()-self.minimum()) * event.x()) / self.width()
|
|
self.setValue(new)
|
|
event.accept()
|
|
- QtGui.QSlider.repaint(self)
|
|
+ QtWidgets.QSlider.repaint(self)
|
|
|
|
- class Counter(QtGui.QDoubleSpinBox):
|
|
+ class Counter(QtWidgets.QDoubleSpinBox):
|
|
""" Creates the range using a counter """
|
|
def __init__(self, parent, ranges, slot, rangeType=float):
|
|
- QtGui.QDoubleSpinBox.__init__(self, parent)
|
|
+ QtWidgets.QDoubleSpinBox.__init__(self, parent)
|
|
|
|
self.rangeType = rangeType
|
|
|
|
@@ -196,10 +196,10 @@
|
|
""" Handle the valueChanged signal by converting to the right type """
|
|
self.notifyChanged(self.rangeType(value))
|
|
|
|
- class CounterSlider(QtGui.QWidget):
|
|
+ class CounterSlider(QtWidgets.QWidget):
|
|
""" Creates the range using a counter and slider """
|
|
def __init__(self, parent, ranges, slot, rangeType=float):
|
|
- QtGui.QWidget.__init__(self, parent)
|
|
+ QtWidgets.QWidget.__init__(self, parent)
|
|
|
|
self.rangeType = rangeType
|
|
|
|
From e58eb487c4119866f8c820658c8cda173bc96370 Mon Sep 17 00:00:00 2001
|
|
From: Paul Cercueil <paul.cercueil@analog.com>
|
|
Date: Tue, 29 Sep 2015 13:22:46 +0200
|
|
Subject: [PATCH 04/22] grc: Generate Python scripts that use PyQt5
|
|
|
|
Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
|
|
---
|
|
grc/blocks/options.xml | 2 +-
|
|
grc/core/generator/flow_graph.tmpl | 8 ++------
|
|
2 files changed, 3 insertions(+), 7 deletions(-)
|
|
|
|
--- a/grc/blocks/options.xml
|
|
+++ b/grc/blocks/options.xml
|
|
@@ -16,7 +16,7 @@
|
|
import wx
|
|
#end if
|
|
#if $generate_options() == 'qt_gui'
|
|
-from PyQt4 import Qt
|
|
+from PyQt5 import Qt
|
|
import sys
|
|
#end if
|
|
#if $generate_options() == 'bokeh_gui'
|
|
--- a/grc/core/generator/flow_graph.tmpl
|
|
+++ b/grc/core/generator/flow_graph.tmpl
|
|
@@ -118,7 +118,7 @@
|
|
self.top_layout.addLayout(self.top_grid_layout)
|
|
|
|
self.settings = Qt.QSettings("GNU Radio", "$class_name")
|
|
- self.restoreGeometry(self.settings.value("geometry").toByteArray())
|
|
+ self.restoreGeometry(self.settings.value("geometry"))
|
|
|
|
#elif $generate_options == 'bokeh_gui'
|
|
|
|
@@ -435,10 +435,6 @@
|
|
serverProc.terminate()
|
|
serverProc.kill()
|
|
#elif $generate_options == 'qt_gui'
|
|
- from distutils.version import StrictVersion
|
|
- if StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0"):
|
|
- style = gr.prefs().get_string('qtgui', 'style', 'raster')
|
|
- Qt.QApplication.setGraphicsSystem(style)
|
|
qapp = Qt.QApplication(sys.argv)
|
|
|
|
tb = top_block_cls($(', '.join($params_eq_list)))
|
|
@@ -457,7 +453,7 @@
|
|
def quitting():
|
|
tb.stop()
|
|
tb.wait()
|
|
- qapp.connect(qapp, Qt.SIGNAL("aboutToQuit()"), quitting)
|
|
+ qapp.aboutToQuit.connect(quitting)
|
|
#for $m in $monitors
|
|
if $m.has_param('en'):
|
|
if $m.get_param('en').get_value():
|
|
From 45c65ebeefcb20c2d2480b11b299d49f288c3b73 Mon Sep 17 00:00:00 2001
|
|
From: Paul Cercueil <paul.cercueil@analog.com>
|
|
Date: Mon, 12 Oct 2015 12:19:42 +0200
|
|
Subject: [PATCH 05/22] gr-qtgui: Add a workaround for an upstream bug of 'uic'
|
|
|
|
The Qt5 version of the 'uic' compiler generates incorrect code right now.
|
|
The bug has been reported (https://bugreports.qt.io/browse/QTBUG-48492) and
|
|
is pending review.
|
|
|
|
Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
|
|
---
|
|
gr-qtgui/include/QtWidgets/QRegExpValidator | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
create mode 100644 gr-qtgui/include/QtWidgets/QRegExpValidator
|
|
|
|
diff --git a/gr-qtgui/include/QtWidgets/QRegExpValidator b/gr-qtgui/include/QtWidgets/QRegExpValidator
|
|
new file mode 100644
|
|
index 0000000000..17f6ce8333
|
|
--- /dev/null
|
|
+++ b/gr-qtgui/include/QtWidgets/QRegExpValidator
|
|
@@ -0,0 +1,9 @@
|
|
+/*
|
|
+ * The Qt5 version of the 'uic' compiler generates incorrect code right now.
|
|
+ * The bug has been reported (https://bugreports.qt.io/browse/QTBUG-48492) and
|
|
+ * is pending review.
|
|
+ *
|
|
+ * This file will make sure that the build of gr-qtgui will succeed with the
|
|
+ * broken version of 'uic'.
|
|
+ */
|
|
+#include <QtGui/QRegExpValidator>
|
|
--
|
|
2.11.0
|
|
|
|
From 8abc28b44c65bf710235be7d1528c5ad92f53e53 Mon Sep 17 00:00:00 2001
|
|
From: Tom Rondeau <tom@trondeau.com>
|
|
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 @@
|
|
-<?xml version='1.0' encoding='ASCII'?>
|
|
+<?xml version='1.0' encoding='utf-8'?>
|
|
+<?grc format='1' created='3.8.git'?>
|
|
<flow_graph>
|
|
<timestamp>Wed Nov 6 11:52:40 2013</timestamp>
|
|
<block>
|
|
<key>options</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>qtgui_tags_viewing</value>
|
|
+ <key>author</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>window_size</key>
|
|
+ <value>1280, 1024</value>
|
|
</param>
|
|
<param>
|
|
- <key>title</key>
|
|
- <value></value>
|
|
+ <key>category</key>
|
|
+ <value>Custom</value>
|
|
</param>
|
|
<param>
|
|
- <key>author</key>
|
|
+ <key>comment</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
@@ -24,241 +25,260 @@
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>window_size</key>
|
|
- <value>1280, 1024</value>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
</param>
|
|
<param>
|
|
- <key>generate_options</key>
|
|
- <value>qt_gui</value>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(10, 10)</value>
|
|
</param>
|
|
<param>
|
|
- <key>category</key>
|
|
- <value>Custom</value>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>run_options</key>
|
|
- <value>run</value>
|
|
+ <key>generate_options</key>
|
|
+ <value>qt_gui</value>
|
|
</param>
|
|
<param>
|
|
- <key>run</key>
|
|
- <value>True</value>
|
|
+ <key>id</key>
|
|
+ <value>qtgui_tags_viewing</value>
|
|
</param>
|
|
<param>
|
|
<key>max_nouts</key>
|
|
<value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>realtime_scheduling</key>
|
|
+ <key>qt_qss_theme</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(10, 10)</value>
|
|
+ <key>realtime_scheduling</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>run_command</key>
|
|
+ <value>{python} -u {filename}</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>variable</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>samp_rate</value>
|
|
+ <key>run_options</key>
|
|
+ <value>run</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
+ <key>run</key>
|
|
<value>True</value>
|
|
</param>
|
|
<param>
|
|
- <key>value</key>
|
|
- <value>32000</value>
|
|
- </param>
|
|
- <param>
|
|
- <key>_coordinate</key>
|
|
- <value>(172, 10)</value>
|
|
+ <key>thread_safe_setters</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>title</key>
|
|
+ <value></value>
|
|
</param>
|
|
</block>
|
|
<block>
|
|
- <key>import</key>
|
|
+ <key>variable_qtgui_range</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>import_1</value>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>value</key>
|
|
+ <value>300</value>
|
|
</param>
|
|
<param>
|
|
<key>_enabled</key>
|
|
<value>True</value>
|
|
</param>
|
|
<param>
|
|
- <key>import</key>
|
|
- <value>from gnuradio.digital.utils import tagged_streams</value>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(814, 390)</value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(99, 72)</value>
|
|
+ <key>gui_hint</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
<key>_rotation</key>
|
|
<value>0</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>import</key>
|
|
<param>
|
|
<key>id</key>
|
|
- <value>import_0</value>
|
|
+ <value>delay</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>label</key>
|
|
+ <value>Delay</value>
|
|
</param>
|
|
<param>
|
|
- <key>import</key>
|
|
- <value>import scipy</value>
|
|
+ <key>min_len</key>
|
|
+ <value>200</value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(9, 71)</value>
|
|
+ <key>orient</key>
|
|
+ <value>Qt.Horizontal</value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
+ <key>start</key>
|
|
<value>0</value>
|
|
</param>
|
|
+ <param>
|
|
+ <key>step</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>stop</key>
|
|
+ <value>1000</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>rangeType</key>
|
|
+ <value>float</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>widget</key>
|
|
+ <value>counter_slider</value>
|
|
+ </param>
|
|
</block>
|
|
<block>
|
|
- <key>import</key>
|
|
+ <key>variable_qtgui_range</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>import_2</value>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>value</key>
|
|
+ <value>30</value>
|
|
</param>
|
|
<param>
|
|
<key>_enabled</key>
|
|
<value>True</value>
|
|
</param>
|
|
<param>
|
|
- <key>import</key>
|
|
- <value>import time</value>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(936, 392)</value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(253, 71)</value>
|
|
+ <key>gui_hint</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
<key>_rotation</key>
|
|
<value>0</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>blocks_delay</key>
|
|
<param>
|
|
<key>id</key>
|
|
- <value>blocks_delay_0</value>
|
|
+ <value>ntaps</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>label</key>
|
|
+ <value>Num Taps</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>complex</value>
|
|
+ <key>min_len</key>
|
|
+ <value>200</value>
|
|
</param>
|
|
<param>
|
|
- <key>delay</key>
|
|
- <value>1000</value>
|
|
+ <key>orient</key>
|
|
+ <value>Qt.Horizontal</value>
|
|
</param>
|
|
<param>
|
|
- <key>num_ports</key>
|
|
+ <key>start</key>
|
|
<value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>vlen</key>
|
|
+ <key>step</key>
|
|
<value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>affinity</key>
|
|
- <value></value>
|
|
- </param>
|
|
- <param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>stop</key>
|
|
+ <value>100</value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(300, 240)</value>
|
|
+ <key>rangeType</key>
|
|
+ <value>float</value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>widget</key>
|
|
+ <value>counter_slider</value>
|
|
</param>
|
|
</block>
|
|
<block>
|
|
- <key>blocks_tags_strobe</key>
|
|
+ <key>variable</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>blocks_tags_strobe_0</value>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
<key>_enabled</key>
|
|
<value>True</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>complex</value>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(172, 10)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>samp_rate</value>
|
|
</param>
|
|
<param>
|
|
<key>value</key>
|
|
- <value>pmt.intern("TEST")</value>
|
|
+ <value>32000</value>
|
|
</param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>analog_fastnoise_source_x</key>
|
|
<param>
|
|
- <key>nsamps</key>
|
|
- <value>10000</value>
|
|
+ <key>amp</key>
|
|
+ <value>0.004</value>
|
|
</param>
|
|
<param>
|
|
- <key>vlen</key>
|
|
- <value>1</value>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
<key>affinity</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
</param>
|
|
<param>
|
|
<key>_coordinate</key>
|
|
- <value>(16, 232)</value>
|
|
+ <value>(350, 39)</value>
|
|
</param>
|
|
<param>
|
|
<key>_rotation</key>
|
|
<value>0</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>analog_fastnoise_source_x</key>
|
|
<param>
|
|
<key>id</key>
|
|
<value>analog_fastnoise_source_x_0</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>complex</value>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
<key>noise_type</key>
|
|
<value>analog.GR_GAUSSIAN</value>
|
|
</param>
|
|
<param>
|
|
- <key>amp</key>
|
|
- <value>0.004</value>
|
|
+ <key>type</key>
|
|
+ <value>complex</value>
|
|
</param>
|
|
<param>
|
|
<key>seed</key>
|
|
@@ -268,85 +288,101 @@
|
|
<key>samples</key>
|
|
<value>8192</value>
|
|
</param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>blocks_add_xx</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
<param>
|
|
<key>affinity</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
</param>
|
|
<param>
|
|
<key>_coordinate</key>
|
|
- <value>(350, 39)</value>
|
|
+ <value>(482, 193)</value>
|
|
</param>
|
|
<param>
|
|
<key>_rotation</key>
|
|
<value>0</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>blocks_vector_source_x</key>
|
|
<param>
|
|
<key>id</key>
|
|
- <value>blocks_vector_source_x_0</value>
|
|
- </param>
|
|
- <param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <value>blocks_add_xx_0</value>
|
|
</param>
|
|
<param>
|
|
<key>type</key>
|
|
<value>complex</value>
|
|
</param>
|
|
<param>
|
|
- <key>vector</key>
|
|
- <value>[0.85+0.5j, 0.85, 0.85, 0.85+0.5j] + (10000-4)*[0,]</value>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>tags</key>
|
|
- <value>tagged_streams.make_lengthtags((1024,), (0,), "testing tags 0")</value>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>repeat</key>
|
|
- <value>True</value>
|
|
+ <key>num_inputs</key>
|
|
+ <value>2</value>
|
|
</param>
|
|
<param>
|
|
<key>vlen</key>
|
|
<value>1</value>
|
|
</param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>blocks_add_xx</key>
|
|
<param>
|
|
- <key>affinity</key>
|
|
+ <key>alias</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>affinity</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
</param>
|
|
<param>
|
|
<key>_coordinate</key>
|
|
- <value>(13, 132)</value>
|
|
+ <value>(707, 176)</value>
|
|
</param>
|
|
<param>
|
|
<key>_rotation</key>
|
|
<value>0</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>blocks_add_xx</key>
|
|
<param>
|
|
<key>id</key>
|
|
- <value>blocks_add_xx_0</value>
|
|
- </param>
|
|
- <param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <value>blocks_add_xx_1</value>
|
|
</param>
|
|
<param>
|
|
<key>type</key>
|
|
<value>complex</value>
|
|
</param>
|
|
<param>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
<key>num_inputs</key>
|
|
<value>2</value>
|
|
</param>
|
|
@@ -354,439 +390,1691 @@
|
|
<key>vlen</key>
|
|
<value>1</value>
|
|
</param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>blocks_delay</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
<param>
|
|
<key>affinity</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>delay</key>
|
|
+ <value>1000</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
</param>
|
|
<param>
|
|
<key>_coordinate</key>
|
|
- <value>(482, 193)</value>
|
|
+ <value>(300, 240)</value>
|
|
</param>
|
|
<param>
|
|
<key>_rotation</key>
|
|
<value>0</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>blocks_add_xx</key>
|
|
<param>
|
|
<key>id</key>
|
|
- <value>blocks_add_xx_1</value>
|
|
+ <value>blocks_delay_0</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>complex</value>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>num_inputs</key>
|
|
- <value>2</value>
|
|
+ <key>num_ports</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>type</key>
|
|
+ <value>complex</value>
|
|
</param>
|
|
<param>
|
|
<key>vlen</key>
|
|
<value>1</value>
|
|
</param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>blocks_delay</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
<param>
|
|
<key>affinity</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>delay</key>
|
|
+ <value>int(delay)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
</param>
|
|
<param>
|
|
<key>_coordinate</key>
|
|
- <value>(707, 176)</value>
|
|
+ <value>(890, 44)</value>
|
|
</param>
|
|
<param>
|
|
<key>_rotation</key>
|
|
<value>0</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>blocks_throttle</key>
|
|
<param>
|
|
<key>id</key>
|
|
- <value>blocks_throttle_0</value>
|
|
+ <value>blocks_delay_0_0</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>complex</value>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>samples_per_second</key>
|
|
- <value>50e3</value>
|
|
+ <key>num_ports</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>type</key>
|
|
+ <value>complex</value>
|
|
</param>
|
|
<param>
|
|
<key>vlen</key>
|
|
<value>1</value>
|
|
</param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>blocks_tags_strobe</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
<param>
|
|
<key>affinity</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
</param>
|
|
<param>
|
|
<key>_coordinate</key>
|
|
- <value>(266, 149)</value>
|
|
+ <value>(16, 232)</value>
|
|
</param>
|
|
<param>
|
|
<key>_rotation</key>
|
|
<value>0</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>variable_qtgui_range</key>
|
|
<param>
|
|
<key>id</key>
|
|
- <value>ntaps</value>
|
|
+ <value>blocks_tags_strobe_0</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>key</key>
|
|
+ <value>pmt.intern("strobe")</value>
|
|
</param>
|
|
<param>
|
|
- <key>label</key>
|
|
- <value>Num Taps</value>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>value</key>
|
|
- <value>30</value>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>start</key>
|
|
- <value>1</value>
|
|
+ <key>nsamps</key>
|
|
+ <value>10000</value>
|
|
</param>
|
|
<param>
|
|
- <key>stop</key>
|
|
- <value>100</value>
|
|
+ <key>type</key>
|
|
+ <value>complex</value>
|
|
</param>
|
|
<param>
|
|
- <key>step</key>
|
|
- <value>1</value>
|
|
+ <key>value</key>
|
|
+ <value>pmt.intern("TEST")</value>
|
|
</param>
|
|
<param>
|
|
- <key>widget</key>
|
|
- <value>counter_slider</value>
|
|
+ <key>vlen</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>blocks_throttle</key>
|
|
<param>
|
|
- <key>orient</key>
|
|
- <value>Qt.Horizontal</value>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>min_len</key>
|
|
- <value>200</value>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>gui_hint</key>
|
|
+ <key>affinity</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
<key>_coordinate</key>
|
|
- <value>(936, 392)</value>
|
|
+ <value>(266, 149)</value>
|
|
</param>
|
|
<param>
|
|
<key>_rotation</key>
|
|
<value>0</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>qtgui_time_sink_x</key>
|
|
<param>
|
|
<key>id</key>
|
|
- <value>qtgui_time_sink_x_0_1_0</value>
|
|
+ <value>blocks_throttle_0</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
+ <key>ignoretag</key>
|
|
<value>True</value>
|
|
</param>
|
|
<param>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>samples_per_second</key>
|
|
+ <value>50e3</value>
|
|
+ </param>
|
|
+ <param>
|
|
<key>type</key>
|
|
<value>complex</value>
|
|
</param>
|
|
<param>
|
|
- <key>name</key>
|
|
+ <key>vlen</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>blocks_throttle</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>size</key>
|
|
- <value>5100</value>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>srate</key>
|
|
- <value>samp_rate</value>
|
|
+ <key>affinity</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>ymin</key>
|
|
- <value>-0.1</value>
|
|
+ <key>_enabled</key>
|
|
+ <value>False</value>
|
|
</param>
|
|
<param>
|
|
- <key>ymax</key>
|
|
- <value>1.5</value>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(267, 414)</value>
|
|
</param>
|
|
<param>
|
|
- <key>nconnections</key>
|
|
- <value>1</value>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>update_time</key>
|
|
- <value>0.001</value>
|
|
+ <key>id</key>
|
|
+ <value>blocks_throttle_0_0</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_mode</key>
|
|
- <value>qtgui.TRIG_MODE_TAG</value>
|
|
+ <key>ignoretag</key>
|
|
+ <value>True</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_slope</key>
|
|
- <value>qtgui.TRIG_SLOPE_POS</value>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_level</key>
|
|
- <value>.5</value>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_delay</key>
|
|
- <value>0.06</value>
|
|
+ <key>samples_per_second</key>
|
|
+ <value>samp_rate</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_chan</key>
|
|
- <value>0</value>
|
|
+ <key>type</key>
|
|
+ <value>float</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_tag</key>
|
|
- <value>strobe</value>
|
|
+ <key>vlen</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>blocks_vector_source_x</key>
|
|
<param>
|
|
- <key>entags</key>
|
|
- <value>True</value>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>gui_hint</key>
|
|
- <value>1,1,1,1</value>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
<key>affinity</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
<key>_coordinate</key>
|
|
- <value>(857, 173)</value>
|
|
+ <value>(13, 132)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>blocks_vector_source_x_0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>type</key>
|
|
+ <value>complex</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>repeat</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tags</key>
|
|
+ <value>tagged_streams.make_lengthtags((1024,), (0,), "testing tags 0")</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>vlen</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>vector</key>
|
|
+ <value>[0.85+0.5j, 0.85, 0.85, 0.85+0.5j] + (10000-4)*[0,]</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>blocks_vector_source_x</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>affinity</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(15, 315)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>blocks_vector_source_x_0_0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>type</key>
|
|
+ <value>complex</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>repeat</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tags</key>
|
|
+ <value>tagged_streams.make_lengthtags((128,), (1500,), "second stream")</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>vlen</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>vector</key>
|
|
+ <value>1500*[0,] + [0.25+0j,] + (10000-1500-1)*[0,]</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>blocks_vector_source_x</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>affinity</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(15, 489)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>blocks_vector_source_x_0_0_0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>type</key>
|
|
+ <value>float</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>repeat</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tags</key>
|
|
+ <value>tagged_streams.make_lengthtags((128,), (110,), "second stream")</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>vlen</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>vector</key>
|
|
+ <value>10*[0,] + [0.5,] + (100-10-1)*[0,]</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>blocks_vector_source_x</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>affinity</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(15, 398)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>blocks_vector_source_x_0_1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>type</key>
|
|
+ <value>float</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>repeat</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tags</key>
|
|
+ <value>tagged_streams.make_lengthtags((1024,), (0,), "testing tags")</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>vlen</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>vector</key>
|
|
+ <value>[-0.85,] + (100-1)*[0,]</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>fir_filter_xxx</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>affinity</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>decim</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(660, 76)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>fir_filter_xxx_0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>maxoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>minoutbuf</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>samp_delay</key>
|
|
+ <value>int(ntaps)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>taps</key>
|
|
+ <value>int(ntaps)*[1,]+[1,]</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>type</key>
|
|
+ <value>ccc</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>import</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(9, 71)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>import_0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>import</key>
|
|
+ <value>import scipy</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>import</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(99, 72)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>import_1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>import</key>
|
|
+ <value>from gnuradio.digital.utils import tagged_streams</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>import</key>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(253, 71)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>import_2</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>import</key>
|
|
+ <value>import time</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>qtgui_time_sink_x</key>
|
|
+ <param>
|
|
+ <key>autoscale</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>ctrlpanel</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>affinity</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>entags</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(860, 298)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>gui_hint</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>grid</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>qtgui_time_sink_x_0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>legend</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha1</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color1</key>
|
|
+ <value>"blue"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label1</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker1</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style1</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width1</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha10</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color10</key>
|
|
+ <value>"blue"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label10</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker10</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style10</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width10</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha2</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color2</key>
|
|
+ <value>"red"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label2</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker2</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style2</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width2</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha3</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color3</key>
|
|
+ <value>"green"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label3</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker3</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style3</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width3</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha4</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color4</key>
|
|
+ <value>"black"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label4</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker4</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style4</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width4</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha5</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color5</key>
|
|
+ <value>"cyan"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label5</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker5</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style5</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width5</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha6</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color6</key>
|
|
+ <value>"magenta"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label6</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker6</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style6</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width6</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha7</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color7</key>
|
|
+ <value>"yellow"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label7</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker7</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style7</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width7</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha8</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color8</key>
|
|
+ <value>"dark red"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label8</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker8</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style8</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width8</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha9</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color9</key>
|
|
+ <value>"dark green"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label9</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker9</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style9</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width9</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>name</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>nconnections</key>
|
|
+ <value>2</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>size</key>
|
|
+ <value>18000</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>srate</key>
|
|
+ <value>samp_rate</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_chan</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_delay</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_level</key>
|
|
+ <value>0.1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_mode</key>
|
|
+ <value>qtgui.TRIG_MODE_NORM</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_slope</key>
|
|
+ <value>qtgui.TRIG_SLOPE_POS</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_tag</key>
|
|
+ <value>""</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>type</key>
|
|
+ <value>complex</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>update_time</key>
|
|
+ <value>0.10</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>ylabel</key>
|
|
+ <value>Amplitude</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>yunit</key>
|
|
+ <value>""</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>ymax</key>
|
|
+ <value>1.5</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>ymin</key>
|
|
+ <value>-0.1</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>qtgui_time_sink_x</key>
|
|
+ <param>
|
|
+ <key>autoscale</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>ctrlpanel</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>affinity</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>entags</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(475, 444)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>gui_hint</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>grid</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>qtgui_time_sink_x_0_0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>legend</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha1</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color1</key>
|
|
+ <value>"blue"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label1</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker1</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style1</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width1</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha10</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color10</key>
|
|
+ <value>"blue"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label10</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker10</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style10</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width10</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha2</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color2</key>
|
|
+ <value>"red"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label2</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker2</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style2</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width2</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha3</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color3</key>
|
|
+ <value>"green"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label3</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker3</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style3</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width3</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha4</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color4</key>
|
|
+ <value>"black"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label4</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker4</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style4</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width4</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha5</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color5</key>
|
|
+ <value>"cyan"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label5</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker5</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style5</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width5</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha6</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color6</key>
|
|
+ <value>"magenta"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label6</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker6</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style6</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width6</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha7</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color7</key>
|
|
+ <value>"yellow"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label7</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker7</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style7</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width7</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha8</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color8</key>
|
|
+ <value>"dark red"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label8</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker8</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style8</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width8</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha9</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color9</key>
|
|
+ <value>"dark green"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label9</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker9</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style9</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width9</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>name</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>nconnections</key>
|
|
+ <value>2</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>size</key>
|
|
+ <value>1024</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>srate</key>
|
|
+ <value>samp_rate</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_chan</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_delay</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_level</key>
|
|
+ <value>0.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_mode</key>
|
|
+ <value>qtgui.TRIG_MODE_TAG</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_slope</key>
|
|
+ <value>qtgui.TRIG_SLOPE_POS</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>tr_tag</key>
|
|
+ <value>second stream</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>type</key>
|
|
+ <value>float</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>update_time</key>
|
|
+ <value>0.10</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>ylabel</key>
|
|
+ <value>Amplitude</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>yunit</key>
|
|
+ <value>""</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>ymax</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>ymin</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>qtgui_time_sink_x</key>
|
|
+ <param>
|
|
+ <key>autoscale</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>ctrlpanel</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>affinity</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>entags</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_coordinate</key>
|
|
+ <value>(1072, 77)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>gui_hint</key>
|
|
+ <value>1,0,1,1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_rotation</key>
|
|
+ <value>0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>grid</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>id</key>
|
|
+ <value>qtgui_time_sink_x_0_1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>legend</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha1</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color1</key>
|
|
+ <value>"blue"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label1</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker1</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style1</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width1</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha10</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color10</key>
|
|
+ <value>"blue"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label10</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker10</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style10</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>width10</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>blocks_vector_source_x</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>blocks_vector_source_x_0_0</value>
|
|
+ <key>alpha2</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>color2</key>
|
|
+ <value>"red"</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>complex</value>
|
|
+ <key>label2</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>vector</key>
|
|
- <value>1500*[0,] + [0.25+0j,] + (10000-1500-1)*[0,]</value>
|
|
+ <key>marker2</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>tags</key>
|
|
- <value>tagged_streams.make_lengthtags((128,), (1500,), "second stream")</value>
|
|
+ <key>style2</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>repeat</key>
|
|
- <value>True</value>
|
|
+ <key>width2</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>vlen</key>
|
|
- <value>1</value>
|
|
+ <key>alpha3</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>affinity</key>
|
|
- <value></value>
|
|
+ <key>color3</key>
|
|
+ <value>"green"</value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>label3</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(15, 315)</value>
|
|
+ <key>marker3</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>style3</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>qtgui_time_sink_x</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>qtgui_time_sink_x_0</value>
|
|
+ <key>width3</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>alpha4</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>complex</value>
|
|
+ <key>color4</key>
|
|
+ <value>"black"</value>
|
|
</param>
|
|
<param>
|
|
- <key>name</key>
|
|
+ <key>label4</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>size</key>
|
|
- <value>18000</value>
|
|
+ <key>marker4</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>srate</key>
|
|
- <value>samp_rate</value>
|
|
+ <key>style4</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>ymin</key>
|
|
- <value>-0.1</value>
|
|
+ <key>width4</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>ymax</key>
|
|
- <value>1.5</value>
|
|
+ <key>alpha5</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>nconnections</key>
|
|
- <value>2</value>
|
|
+ <key>color5</key>
|
|
+ <value>"cyan"</value>
|
|
</param>
|
|
<param>
|
|
- <key>update_time</key>
|
|
- <value>0.10</value>
|
|
+ <key>label5</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_mode</key>
|
|
- <value>qtgui.TRIG_MODE_NORM</value>
|
|
+ <key>marker5</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_slope</key>
|
|
- <value>qtgui.TRIG_SLOPE_POS</value>
|
|
+ <key>style5</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_level</key>
|
|
- <value>0.1</value>
|
|
+ <key>width5</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_delay</key>
|
|
- <value>0</value>
|
|
+ <key>alpha6</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_chan</key>
|
|
- <value>0</value>
|
|
+ <key>color6</key>
|
|
+ <value>"magenta"</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_tag</key>
|
|
- <value>""</value>
|
|
+ <key>label6</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>entags</key>
|
|
- <value>True</value>
|
|
+ <key>marker6</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>gui_hint</key>
|
|
- <value></value>
|
|
+ <key>style6</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>affinity</key>
|
|
- <value></value>
|
|
+ <key>width6</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(860, 298)</value>
|
|
+ <key>alpha7</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>color7</key>
|
|
+ <value>"yellow"</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>fir_filter_xxx</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>fir_filter_xxx_0</value>
|
|
+ <key>label7</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>marker7</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>ccc</value>
|
|
+ <key>style7</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>decim</key>
|
|
+ <key>width7</key>
|
|
<value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>taps</key>
|
|
- <value>int(ntaps)*[1,]+[1,]</value>
|
|
+ <key>alpha8</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>samp_delay</key>
|
|
- <value>int(ntaps)</value>
|
|
+ <key>color8</key>
|
|
+ <value>"dark red"</value>
|
|
</param>
|
|
<param>
|
|
- <key>affinity</key>
|
|
+ <key>label8</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>marker8</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(660, 76)</value>
|
|
+ <key>style8</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>width8</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>qtgui_time_sink_x</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>qtgui_time_sink_x_0_1</value>
|
|
+ <key>alpha9</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>color9</key>
|
|
+ <value>"dark green"</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>complex</value>
|
|
+ <key>label9</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>marker9</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style9</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width9</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
<key>name</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
+ <key>nconnections</key>
|
|
+ <value>2</value>
|
|
+ </param>
|
|
+ <param>
|
|
<key>size</key>
|
|
<value>1000</value>
|
|
</param>
|
|
@@ -795,20 +2083,16 @@
|
|
<value>samp_rate</value>
|
|
</param>
|
|
<param>
|
|
- <key>ymin</key>
|
|
- <value>-0.1</value>
|
|
- </param>
|
|
- <param>
|
|
- <key>ymax</key>
|
|
- <value>4.5</value>
|
|
+ <key>tr_chan</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>nconnections</key>
|
|
- <value>2</value>
|
|
+ <key>tr_delay</key>
|
|
+ <value>0.015</value>
|
|
</param>
|
|
<param>
|
|
- <key>update_time</key>
|
|
- <value>0.10</value>
|
|
+ <key>tr_level</key>
|
|
+ <value>.1</value>
|
|
</param>
|
|
<param>
|
|
<key>tr_mode</key>
|
|
@@ -819,379 +2103,394 @@
|
|
<value>qtgui.TRIG_SLOPE_POS</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_level</key>
|
|
- <value>.1</value>
|
|
+ <key>tr_tag</key>
|
|
+ <value>""</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_delay</key>
|
|
- <value>0.015</value>
|
|
+ <key>type</key>
|
|
+ <value>complex</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_chan</key>
|
|
- <value>0</value>
|
|
+ <key>update_time</key>
|
|
+ <value>0.10</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_tag</key>
|
|
+ <key>ylabel</key>
|
|
+ <value>Amplitude</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>yunit</key>
|
|
<value>""</value>
|
|
</param>
|
|
<param>
|
|
- <key>entags</key>
|
|
- <value>True</value>
|
|
+ <key>ymax</key>
|
|
+ <value>4.5</value>
|
|
</param>
|
|
<param>
|
|
- <key>gui_hint</key>
|
|
- <value>1,0,1,1</value>
|
|
+ <key>ymin</key>
|
|
+ <value>-0.1</value>
|
|
+ </param>
|
|
+ </block>
|
|
+ <block>
|
|
+ <key>qtgui_time_sink_x</key>
|
|
+ <param>
|
|
+ <key>autoscale</key>
|
|
+ <value>False</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alias</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>comment</key>
|
|
+ <value></value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>ctrlpanel</key>
|
|
+ <value>False</value>
|
|
</param>
|
|
<param>
|
|
<key>affinity</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
+ <key>entags</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>_enabled</key>
|
|
+ <value>True</value>
|
|
+ </param>
|
|
+ <param>
|
|
<key>_coordinate</key>
|
|
- <value>(1072, 77)</value>
|
|
+ <value>(857, 173)</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>gui_hint</key>
|
|
+ <value>1,1,1,1</value>
|
|
</param>
|
|
<param>
|
|
<key>_rotation</key>
|
|
<value>0</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>qtgui_time_sink_x</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>qtgui_time_sink_x_0_0</value>
|
|
+ <key>grid</key>
|
|
+ <value>False</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>False</value>
|
|
+ <key>id</key>
|
|
+ <value>qtgui_time_sink_x_0_1_0</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>float</value>
|
|
+ <key>legend</key>
|
|
+ <value>True</value>
|
|
</param>
|
|
<param>
|
|
- <key>name</key>
|
|
- <value></value>
|
|
+ <key>alpha1</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>size</key>
|
|
- <value>1024</value>
|
|
+ <key>color1</key>
|
|
+ <value>"blue"</value>
|
|
</param>
|
|
<param>
|
|
- <key>srate</key>
|
|
- <value>samp_rate</value>
|
|
+ <key>label1</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>ymin</key>
|
|
+ <key>marker1</key>
|
|
<value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>ymax</key>
|
|
+ <key>style1</key>
|
|
<value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>nconnections</key>
|
|
- <value>2</value>
|
|
+ <key>width1</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>update_time</key>
|
|
- <value>0.10</value>
|
|
+ <key>alpha10</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_mode</key>
|
|
- <value>qtgui.TRIG_MODE_TAG</value>
|
|
+ <key>color10</key>
|
|
+ <value>"blue"</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_slope</key>
|
|
- <value>qtgui.TRIG_SLOPE_POS</value>
|
|
+ <key>label10</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_level</key>
|
|
- <value>0.0</value>
|
|
+ <key>marker10</key>
|
|
+ <value>-1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>style10</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>width10</key>
|
|
+ <value>1</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>alpha2</key>
|
|
+ <value>1.0</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>color2</key>
|
|
+ <value>"red"</value>
|
|
+ </param>
|
|
+ <param>
|
|
+ <key>label2</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_delay</key>
|
|
- <value>0</value>
|
|
+ <key>marker2</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_chan</key>
|
|
+ <key>style2</key>
|
|
<value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>tr_tag</key>
|
|
- <value>second stream</value>
|
|
+ <key>width2</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>entags</key>
|
|
- <value>True</value>
|
|
+ <key>alpha3</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>gui_hint</key>
|
|
- <value></value>
|
|
+ <key>color3</key>
|
|
+ <value>"green"</value>
|
|
</param>
|
|
<param>
|
|
- <key>affinity</key>
|
|
+ <key>label3</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(475, 444)</value>
|
|
+ <key>marker3</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>style3</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>blocks_vector_source_x</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>blocks_vector_source_x_0_0_0</value>
|
|
+ <key>width3</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>False</value>
|
|
+ <key>alpha4</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>float</value>
|
|
+ <key>color4</key>
|
|
+ <value>"black"</value>
|
|
</param>
|
|
<param>
|
|
- <key>vector</key>
|
|
- <value>10*[0,] + [0.5,] + (100-10-1)*[0,]</value>
|
|
+ <key>label4</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>tags</key>
|
|
- <value>tagged_streams.make_lengthtags((128,), (110,), "second stream")</value>
|
|
+ <key>marker4</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>repeat</key>
|
|
- <value>True</value>
|
|
+ <key>style4</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>vlen</key>
|
|
+ <key>width4</key>
|
|
<value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>affinity</key>
|
|
- <value></value>
|
|
+ <key>alpha5</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>color5</key>
|
|
+ <value>"cyan"</value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(15, 489)</value>
|
|
+ <key>label5</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>marker5</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>blocks_vector_source_x</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>blocks_vector_source_x_0_1</value>
|
|
+ <key>style5</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>False</value>
|
|
+ <key>width5</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>float</value>
|
|
+ <key>alpha6</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>vector</key>
|
|
- <value>[-0.85,] + (100-1)*[0,]</value>
|
|
+ <key>color6</key>
|
|
+ <value>"magenta"</value>
|
|
</param>
|
|
<param>
|
|
- <key>tags</key>
|
|
- <value>tagged_streams.make_lengthtags((1024,), (0,), "testing tags")</value>
|
|
+ <key>label6</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>repeat</key>
|
|
- <value>True</value>
|
|
+ <key>marker6</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>vlen</key>
|
|
+ <key>style6</key>
|
|
<value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>affinity</key>
|
|
- <value></value>
|
|
+ <key>width6</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>alpha7</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(15, 398)</value>
|
|
+ <key>color7</key>
|
|
+ <value>"yellow"</value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>label7</key>
|
|
+ <value></value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>blocks_throttle</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>blocks_throttle_0_0</value>
|
|
+ <key>marker7</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>False</value>
|
|
+ <key>style7</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>float</value>
|
|
+ <key>width7</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>samples_per_second</key>
|
|
- <value>samp_rate</value>
|
|
+ <key>alpha8</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>vlen</key>
|
|
- <value>1</value>
|
|
+ <key>color8</key>
|
|
+ <value>"dark red"</value>
|
|
</param>
|
|
<param>
|
|
- <key>affinity</key>
|
|
+ <key>label8</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
+ <key>marker8</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(267, 414)</value>
|
|
+ <key>style8</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>width8</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>blocks_delay</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>blocks_delay_0_0</value>
|
|
+ <key>alpha9</key>
|
|
+ <value>1.0</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>color9</key>
|
|
+ <value>"dark green"</value>
|
|
</param>
|
|
<param>
|
|
- <key>type</key>
|
|
- <value>complex</value>
|
|
+ <key>label9</key>
|
|
+ <value></value>
|
|
</param>
|
|
<param>
|
|
- <key>delay</key>
|
|
- <value>int(delay)</value>
|
|
+ <key>marker9</key>
|
|
+ <value>-1</value>
|
|
</param>
|
|
<param>
|
|
- <key>num_ports</key>
|
|
+ <key>style9</key>
|
|
<value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>vlen</key>
|
|
+ <key>width9</key>
|
|
<value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>affinity</key>
|
|
+ <key>name</key>
|
|
<value></value>
|
|
</param>
|
|
<param>
|
|
- <key>minoutbuf</key>
|
|
- <value>0</value>
|
|
- </param>
|
|
- <param>
|
|
- <key>_coordinate</key>
|
|
- <value>(890, 44)</value>
|
|
+ <key>nconnections</key>
|
|
+ <value>1</value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>size</key>
|
|
+ <value>5100</value>
|
|
</param>
|
|
- </block>
|
|
- <block>
|
|
- <key>variable_qtgui_range</key>
|
|
<param>
|
|
- <key>id</key>
|
|
- <value>delay</value>
|
|
+ <key>srate</key>
|
|
+ <value>samp_rate</value>
|
|
</param>
|
|
<param>
|
|
- <key>_enabled</key>
|
|
- <value>True</value>
|
|
+ <key>tr_chan</key>
|
|
+ <value>0</value>
|
|
</param>
|
|
<param>
|
|
- <key>label</key>
|
|
- <value>Delay</value>
|
|
+ <key>tr_delay</key>
|
|
+ <value>0.06</value>
|
|
</param>
|
|
<param>
|
|
- <key>value</key>
|
|
- <value>300</value>
|
|
+ <key>tr_level</key>
|
|
+ <value>.5</value>
|
|
</param>
|
|
<param>
|
|
- <key>start</key>
|
|
- <value>0</value>
|
|
+ <key>tr_mode</key>
|
|
+ <value>qtgui.TRIG_MODE_TAG</value>
|
|
</param>
|
|
<param>
|
|
- <key>stop</key>
|
|
- <value>1000</value>
|
|
+ <key>tr_slope</key>
|
|
+ <value>qtgui.TRIG_SLOPE_POS</value>
|
|
</param>
|
|
<param>
|
|
- <key>step</key>
|
|
- <value>1</value>
|
|
+ <key>tr_tag</key>
|
|
+ <value>strobe</value>
|
|
</param>
|
|
<param>
|
|
- <key>widget</key>
|
|
- <value>counter_slider</value>
|
|
+ <key>type</key>
|
|
+ <value>complex</value>
|
|
</param>
|
|
<param>
|
|
- <key>orient</key>
|
|
- <value>Qt.Horizontal</value>
|
|
+ <key>update_time</key>
|
|
+ <value>0.001</value>
|
|
</param>
|
|
<param>
|
|
- <key>min_len</key>
|
|
- <value>200</value>
|
|
+ <key>ylabel</key>
|
|
+ <value>Amplitude</value>
|
|
</param>
|
|
<param>
|
|
- <key>gui_hint</key>
|
|
- <value></value>
|
|
+ <key>yunit</key>
|
|
+ <value>""</value>
|
|
</param>
|
|
<param>
|
|
- <key>_coordinate</key>
|
|
- <value>(814, 390)</value>
|
|
+ <key>ymax</key>
|
|
+ <value>1.5</value>
|
|
</param>
|
|
<param>
|
|
- <key>_rotation</key>
|
|
- <value>0</value>
|
|
+ <key>ymin</key>
|
|
+ <value>-0.1</value>
|
|
</param>
|
|
</block>
|
|
<connection>
|
|
- <source_block_id>blocks_vector_source_x_0</source_block_id>
|
|
- <sink_block_id>blocks_throttle_0</sink_block_id>
|
|
- <source_key>0</source_key>
|
|
- <sink_key>0</sink_key>
|
|
- </connection>
|
|
- <connection>
|
|
- <source_block_id>blocks_throttle_0</source_block_id>
|
|
- <sink_block_id>blocks_add_xx_0</sink_block_id>
|
|
- <source_key>0</source_key>
|
|
- <sink_key>0</sink_key>
|
|
- </connection>
|
|
- <connection>
|
|
- <source_block_id>blocks_delay_0</source_block_id>
|
|
- <sink_block_id>blocks_add_xx_0</sink_block_id>
|
|
- <source_key>0</source_key>
|
|
- <sink_key>1</sink_key>
|
|
- </connection>
|
|
- <connection>
|
|
<source_block_id>analog_fastnoise_source_x_0</source_block_id>
|
|
<sink_block_id>blocks_add_xx_1</sink_block_id>
|
|
<source_key>0</source_key>
|
|
@@ -1210,28 +2509,28 @@
|
|
<sink_key>0</sink_key>
|
|
</connection>
|
|
<connection>
|
|
- <source_block_id>fir_filter_xxx_0</source_block_id>
|
|
- <sink_block_id>blocks_delay_0_0</sink_block_id>
|
|
+ <source_block_id>blocks_add_xx_1</source_block_id>
|
|
+ <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
|
|
<source_key>0</source_key>
|
|
<sink_key>0</sink_key>
|
|
</connection>
|
|
<connection>
|
|
- <source_block_id>blocks_delay_0_0</source_block_id>
|
|
- <sink_block_id>qtgui_time_sink_x_0_1</sink_block_id>
|
|
+ <source_block_id>blocks_add_xx_1</source_block_id>
|
|
+ <sink_block_id>qtgui_time_sink_x_0_1_0</sink_block_id>
|
|
<source_key>0</source_key>
|
|
<sink_key>0</sink_key>
|
|
</connection>
|
|
<connection>
|
|
- <source_block_id>fir_filter_xxx_0</source_block_id>
|
|
- <sink_block_id>qtgui_time_sink_x_0_1</sink_block_id>
|
|
+ <source_block_id>blocks_delay_0</source_block_id>
|
|
+ <sink_block_id>blocks_add_xx_0</sink_block_id>
|
|
<source_key>0</source_key>
|
|
<sink_key>1</sink_key>
|
|
</connection>
|
|
<connection>
|
|
- <source_block_id>blocks_vector_source_x_0_0</source_block_id>
|
|
- <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
|
|
+ <source_block_id>blocks_delay_0_0</source_block_id>
|
|
+ <sink_block_id>qtgui_time_sink_x_0_1</sink_block_id>
|
|
<source_key>0</source_key>
|
|
- <sink_key>1</sink_key>
|
|
+ <sink_key>0</sink_key>
|
|
</connection>
|
|
<connection>
|
|
<source_block_id>blocks_tags_strobe_0</source_block_id>
|
|
@@ -1240,28 +2539,34 @@
|
|
<sink_key>0</sink_key>
|
|
</connection>
|
|
<connection>
|
|
- <source_block_id>blocks_add_xx_1</source_block_id>
|
|
- <sink_block_id>qtgui_time_sink_x_0_1_0</sink_block_id>
|
|
+ <source_block_id>blocks_throttle_0</source_block_id>
|
|
+ <sink_block_id>blocks_add_xx_0</sink_block_id>
|
|
<source_key>0</source_key>
|
|
<sink_key>0</sink_key>
|
|
</connection>
|
|
<connection>
|
|
- <source_block_id>blocks_add_xx_1</source_block_id>
|
|
- <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
|
|
+ <source_block_id>blocks_throttle_0_0</source_block_id>
|
|
+ <sink_block_id>qtgui_time_sink_x_0_0</sink_block_id>
|
|
<source_key>0</source_key>
|
|
<sink_key>0</sink_key>
|
|
</connection>
|
|
<connection>
|
|
- <source_block_id>blocks_vector_source_x_0_0_0</source_block_id>
|
|
- <sink_block_id>qtgui_time_sink_x_0_0</sink_block_id>
|
|
+ <source_block_id>blocks_vector_source_x_0</source_block_id>
|
|
+ <sink_block_id>blocks_throttle_0</sink_block_id>
|
|
+ <source_key>0</source_key>
|
|
+ <sink_key>0</sink_key>
|
|
+ </connection>
|
|
+ <connection>
|
|
+ <source_block_id>blocks_vector_source_x_0_0</source_block_id>
|
|
+ <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
|
|
<source_key>0</source_key>
|
|
<sink_key>1</sink_key>
|
|
</connection>
|
|
<connection>
|
|
- <source_block_id>blocks_throttle_0_0</source_block_id>
|
|
+ <source_block_id>blocks_vector_source_x_0_0_0</source_block_id>
|
|
<sink_block_id>qtgui_time_sink_x_0_0</sink_block_id>
|
|
<source_key>0</source_key>
|
|
- <sink_key>0</sink_key>
|
|
+ <sink_key>1</sink_key>
|
|
</connection>
|
|
<connection>
|
|
<source_block_id>blocks_vector_source_x_0_1</source_block_id>
|
|
@@ -1269,4 +2574,16 @@
|
|
<source_key>0</source_key>
|
|
<sink_key>0</sink_key>
|
|
</connection>
|
|
+ <connection>
|
|
+ <source_block_id>fir_filter_xxx_0</source_block_id>
|
|
+ <sink_block_id>blocks_delay_0_0</sink_block_id>
|
|
+ <source_key>0</source_key>
|
|
+ <sink_key>0</sink_key>
|
|
+ </connection>
|
|
+ <connection>
|
|
+ <source_block_id>fir_filter_xxx_0</source_block_id>
|
|
+ <sink_block_id>qtgui_time_sink_x_0_1</sink_block_id>
|
|
+ <source_key>0</source_key>
|
|
+ <sink_key>1</sink_key>
|
|
+ </connection>
|
|
</flow_graph>
|
|
--
|
|
2.11.0
|
|
|
|
From 1dae9e033016f35416cb433a8a129b4f011eb8c1 Mon Sep 17 00:00:00 2001
|
|
From: Tom Rondeau <tom@trondeau.com>
|
|
Date: Thu, 28 Apr 2016 10:53:12 -0400
|
|
Subject: [PATCH 07/22] qtgui: Fixes for edit_box_msg to work with QT5.
|
|
|
|
---
|
|
gr-qtgui/examples/c++/CMakeLists.txt | 20 +++++++++++---------
|
|
gr-qtgui/grc/qtgui_edit_box_msg.xml | 2 +-
|
|
gr-qtgui/lib/edit_box_msg_impl.cc | 4 ----
|
|
3 files changed, 12 insertions(+), 14 deletions(-)
|
|
|
|
--- a/gr-qtgui/examples/c++/CMakeLists.txt
|
|
+++ b/gr-qtgui/examples/c++/CMakeLists.txt
|
|
@@ -18,14 +18,14 @@
|
|
# Boston, MA 02110-1301, USA.
|
|
|
|
include_directories(
|
|
- ${GR_QTGUI_INCLUDE_DIRS}
|
|
- ${GR_ANALOG_INCLUDE_DIRS}
|
|
- ${GR_FILTER_INCLUDE_DIRS}
|
|
- ${GR_BLOCKS_INCLUDE_DIRS}
|
|
- ${GR_FFT_INCLUDE_DIRS}
|
|
- ${GNURADIO_RUNTIME_INCLUDE_DIRS}
|
|
- ${QT_INCLUDE_DIRS}
|
|
- ${Boost_INCLUDE_DIRS}
|
|
+ ${GR_QTGUI_INCLUDE_DIRS}
|
|
+ ${GR_ANALOG_INCLUDE_DIRS}
|
|
+ ${GR_FILTER_INCLUDE_DIRS}
|
|
+ ${GR_BLOCKS_INCLUDE_DIRS}
|
|
+ ${GR_FFT_INCLUDE_DIRS}
|
|
+ ${GNURADIO_RUNTIME_INCLUDE_DIRS}
|
|
+ ${Qt5Widgets_INCLUDE_DIRS}
|
|
+ ${Boost_INCLUDE_DIRS}
|
|
)
|
|
|
|
list(APPEND QTGUI_LIBRARIES
|
|
@@ -35,9 +35,11 @@
|
|
gnuradio-blocks
|
|
gnuradio-fft
|
|
gnuradio-runtime
|
|
+ ${QWT_LIBRARY_DIRS}
|
|
+ ${Qt5Widgets_LIBRARIES}
|
|
)
|
|
|
|
-QT4_WRAP_CPP(qtgui_moc_sources display_qt.h)
|
|
+QT5_WRAP_CPP(qtgui_moc_sources display_qt.h)
|
|
add_executable(display_qt display_qt.cc ${qtgui_moc_sources})
|
|
target_link_libraries(display_qt ${QTGUI_LIBRARIES})
|
|
|
|
--- a/gr-qtgui/grc/qtgui_edit_box_msg.xml
|
|
+++ b/gr-qtgui/grc/qtgui_edit_box_msg.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Message Edit Box</name>
|
|
<key>qtgui_edit_box_msg</key>
|
|
- <import>from PyQt4 import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
--- a/gr-qtgui/lib/edit_box_msg_impl.cc
|
|
+++ b/gr-qtgui/lib/edit_box_msg_impl.cc
|
|
@@ -66,10 +66,6 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
-#if QT_VERSION >= 0x040500
|
|
- std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
- QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
-#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
From aa06972a708d3559eae667dd9484edadf722d73c Mon Sep 17 00:00:00 2001
|
|
From: Paul Cercueil <paul.cercueil@analog.com>
|
|
Date: Mon, 20 Jun 2016 18:37:43 +0200
|
|
Subject: [PATCH 08/22] gr-qtgui: Allow build with Qt4 or Qt5 (default)
|
|
|
|
Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
|
|
---
|
|
gr-qtgui/CMakeLists.txt | 27 ++++++++++++++++++++-------
|
|
gr-qtgui/examples/c++/CMakeLists.txt | 11 ++++++++---
|
|
gr-qtgui/include/gnuradio/qtgui/form_menus.h | 4 ++++
|
|
gr-qtgui/lib/CMakeLists.txt | 14 ++++++++++----
|
|
4 files changed, 42 insertions(+), 14 deletions(-)
|
|
|
|
--- a/gr-qtgui/CMakeLists.txt
|
|
+++ b/gr-qtgui/CMakeLists.txt
|
|
@@ -22,14 +22,27 @@
|
|
########################################################################
|
|
include(GrBoost)
|
|
|
|
-find_package(Qt5Widgets)
|
|
-
|
|
-find_package(Qwt)
|
|
-
|
|
find_package(PythonLibs 2)
|
|
|
|
include(GrPython)
|
|
-GR_PYTHON_CHECK_MODULE("PyQt5" PyQt5 True PYQT5_FOUND)
|
|
+
|
|
+set(DESIRED_QT_VERSION 5 CACHE STRING "The Qt version to use (4 or 5)")
|
|
+set_property(CACHE DESIRED_QT_VERSION PROPERTY STRINGS 4 5)
|
|
+
|
|
+if (DESIRED_QT_VERSION MATCHES 4)
|
|
+ find_package(Qt4 COMPONENTS QtCore QtGui)
|
|
+ set(QT_FOUND ${Qt4_FOUND})
|
|
+ include(GrSetupQt4)
|
|
+else()
|
|
+ find_package(Qt5Widgets)
|
|
+ set(QT_FOUND ${Qt5Widgets_FOUND})
|
|
+ set(QT_LIBRARIES ${Qt5Widgets_LIBRARIES})
|
|
+ set(QT_INCLUDE_DIRS ${Qt5Widgets_INCLUDE_DIRS})
|
|
+endif()
|
|
+
|
|
+GR_PYTHON_CHECK_MODULE("PyQt${DESIRED_QT_VERSION}" PyQt${DESIRED_QT_VERSION} True PYQT${DESIRED_QT_VERSION}_FOUND)
|
|
+
|
|
+find_package(Qwt)
|
|
|
|
########################################################################
|
|
# Register component
|
|
@@ -37,13 +50,13 @@
|
|
include(GrComponent)
|
|
if(NOT CMAKE_CROSSCOMPILING)
|
|
set(qt_gui_python_deps
|
|
- PYQT5_FOUND
|
|
+ PYQT${DESIRED_QT_VERSION}_FOUND
|
|
)
|
|
endif(NOT CMAKE_CROSSCOMPILING)
|
|
|
|
GR_REGISTER_COMPONENT("gr-qtgui" ENABLE_GR_QTGUI
|
|
Boost_FOUND
|
|
- Qt5Widgets_FOUND
|
|
+ QT_FOUND
|
|
QWT_FOUND
|
|
ENABLE_VOLK
|
|
ENABLE_GNURADIO_RUNTIME
|
|
--- a/gr-qtgui/examples/c++/CMakeLists.txt
|
|
+++ b/gr-qtgui/examples/c++/CMakeLists.txt
|
|
@@ -24,7 +24,7 @@
|
|
${GR_BLOCKS_INCLUDE_DIRS}
|
|
${GR_FFT_INCLUDE_DIRS}
|
|
${GNURADIO_RUNTIME_INCLUDE_DIRS}
|
|
- ${Qt5Widgets_INCLUDE_DIRS}
|
|
+ ${QT_INCLUDE_DIRS}
|
|
${Boost_INCLUDE_DIRS}
|
|
)
|
|
|
|
@@ -36,10 +36,15 @@
|
|
gnuradio-fft
|
|
gnuradio-runtime
|
|
${QWT_LIBRARY_DIRS}
|
|
- ${Qt5Widgets_LIBRARIES}
|
|
+ ${QT_LIBRARIES}
|
|
)
|
|
|
|
-QT5_WRAP_CPP(qtgui_moc_sources display_qt.h)
|
|
+if (${DESIRED_QT_VERSION} MATCHES 4)
|
|
+ QT4_WRAP_CPP(qtgui_moc_sources display_qt.h)
|
|
+else()
|
|
+ QT5_WRAP_CPP(qtgui_moc_sources display_qt.h)
|
|
+endif()
|
|
+
|
|
add_executable(display_qt display_qt.cc ${qtgui_moc_sources})
|
|
target_link_libraries(display_qt ${QTGUI_LIBRARIES})
|
|
|
|
--- a/gr-qtgui/include/gnuradio/qtgui/form_menus.h
|
|
+++ b/gr-qtgui/include/gnuradio/qtgui/form_menus.h
|
|
@@ -28,7 +28,11 @@
|
|
#include <QtGui/QtGui>
|
|
#include <QtGui/QIntValidator>
|
|
#include <QtGui/QDoubleValidator>
|
|
+
|
|
+#if QT_VERSION >= 0x050000
|
|
#include <QtWidgets/QtWidgets>
|
|
+#endif
|
|
+
|
|
#include <qwt_symbol.h>
|
|
#include <gnuradio/filter/firdes.h>
|
|
#include <gnuradio/qtgui/qtgui_types.h>
|
|
--- a/gr-qtgui/lib/CMakeLists.txt
|
|
+++ b/gr-qtgui/lib/CMakeLists.txt
|
|
@@ -45,8 +45,14 @@
|
|
${qtgui_mod_includedir}/VectorDisplayPlot.h
|
|
edit_box_msg_impl.h
|
|
)
|
|
-QT5_WRAP_CPP(qtgui_moc_sources ${qtgui_moc_hdrs})
|
|
-QT5_WRAP_UI(qtgui_ui_hdrs spectrumdisplayform.ui)
|
|
+
|
|
+if (${DESIRED_QT_VERSION} MATCHES 4)
|
|
+ QT4_WRAP_CPP(qtgui_moc_sources ${qtgui_moc_hdrs})
|
|
+ QT4_WRAP_UI(qtgui_ui_hdrs spectrumdisplayform.ui)
|
|
+else()
|
|
+ QT5_WRAP_CPP(qtgui_moc_sources ${qtgui_moc_hdrs})
|
|
+ QT5_WRAP_UI(qtgui_ui_hdrs spectrumdisplayform.ui)
|
|
+endif()
|
|
|
|
#FIXME the sources expect <foo>.ui.h, but the macros generate ui_foo.h
|
|
#avoid changing the sources by generating the header with the include
|
|
@@ -127,7 +133,7 @@
|
|
${GNURADIO_RUNTIME_INCLUDE_DIRS}
|
|
${VOLK_INCLUDE_DIRS}
|
|
${QWT_INCLUDE_DIRS}
|
|
- ${Qt5Widgets_INCLUDE_DIRS}
|
|
+ ${QT_INCLUDE_DIRS}
|
|
${FFTW3F_INCLUDE_DIRS}
|
|
${Boost_INCLUDE_DIRS}
|
|
${PYTHON_INCLUDE_DIRS}
|
|
@@ -154,7 +160,7 @@
|
|
gnuradio-filter
|
|
${VOLK_LIBRARIES}
|
|
${QWT_LIBRARIES}
|
|
- ${Qt5Widgets_LIBRARIES}
|
|
+ ${QT_LIBRARIES}
|
|
${FFTW3F_LIBRARIES}
|
|
)
|
|
if (WIN32)
|
|
From dc3db3b5ac29769aa4ab571a670d26e2fc7b6bf6 Mon Sep 17 00:00:00 2001
|
|
From: Paul Cercueil <paul.cercueil@analog.com>
|
|
Date: Tue, 21 Jun 2016 17:42:45 +0200
|
|
Subject: [PATCH 09/22] gr-qtgui: Fix PyQt[4,5] include in XMLs for GRC
|
|
|
|
Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
|
|
---
|
|
gr-qtgui/grc/CMakeLists.txt | 9 ++++++++-
|
|
.../grc/{qtgui_ber_sink_b.xml => qtgui_ber_sink_b.xml.cmakein} | 2 +-
|
|
.../grc/{qtgui_block_tree.xml => qtgui_block_tree.xml.cmakein} | 0
|
|
.../grc/{qtgui_check_box.xml => qtgui_check_box.xml.cmakein} | 2 +-
|
|
gr-qtgui/grc/{qtgui_chooser.xml => qtgui_chooser.xml.cmakein} | 4 ++--
|
|
.../{qtgui_const_sink_x.xml => qtgui_const_sink_x.xml.cmakein} | 2 +-
|
|
.../{qtgui_edit_box_msg.xml => qtgui_edit_box_msg.xml.cmakein} | 2 +-
|
|
gr-qtgui/grc/{qtgui_entry.xml => qtgui_entry.xml.cmakein} | 2 +-
|
|
.../grc/{qtgui_freq_sink_x.xml => qtgui_freq_sink_x.xml.cmakein} | 2 +-
|
|
...i_histogram_sink_x.xml => qtgui_histogram_sink_x.xml.cmakein} | 2 +-
|
|
gr-qtgui/grc/{qtgui_label.xml => qtgui_label.xml.cmakein} | 2 +-
|
|
.../grc/{qtgui_number_sink.xml => qtgui_number_sink.xml.cmakein} | 2 +-
|
|
.../grc/{qtgui_push_button.xml => qtgui_push_button.xml.cmakein} | 2 +-
|
|
gr-qtgui/grc/{qtgui_range.xml => qtgui_range.xml.cmakein} | 0
|
|
gr-qtgui/grc/{qtgui_sink_x.xml => qtgui_sink_x.xml.cmakein} | 2 +-
|
|
.../grc/{qtgui_tab_widget.xml => qtgui_tab_widget.xml.cmakein} | 2 +-
|
|
.../{qtgui_time_raster_x.xml => qtgui_time_raster_x.xml.cmakein} | 2 +-
|
|
.../grc/{qtgui_time_sink_x.xml => qtgui_time_sink_x.xml.cmakein} | 2 +-
|
|
.../{qtgui_vector_sink_f.xml => qtgui_vector_sink_f.xml.cmakein} | 2 +-
|
|
...i_waterfall_sink_x.xml => qtgui_waterfall_sink_x.xml.cmakein} | 2 +-
|
|
20 files changed, 26 insertions(+), 19 deletions(-)
|
|
rename gr-qtgui/grc/{qtgui_ber_sink_b.xml => qtgui_ber_sink_b.xml.cmakein} (99%)
|
|
rename gr-qtgui/grc/{qtgui_block_tree.xml => qtgui_block_tree.xml.cmakein} (100%)
|
|
rename gr-qtgui/grc/{qtgui_check_box.xml => qtgui_check_box.xml.cmakein} (97%)
|
|
rename gr-qtgui/grc/{qtgui_chooser.xml => qtgui_chooser.xml.cmakein} (98%)
|
|
rename gr-qtgui/grc/{qtgui_const_sink_x.xml => qtgui_const_sink_x.xml.cmakein} (99%)
|
|
rename gr-qtgui/grc/{qtgui_edit_box_msg.xml => qtgui_edit_box_msg.xml.cmakein} (98%)
|
|
rename gr-qtgui/grc/{qtgui_entry.xml => qtgui_entry.xml.cmakein} (97%)
|
|
rename gr-qtgui/grc/{qtgui_freq_sink_x.xml => qtgui_freq_sink_x.xml.cmakein} (99%)
|
|
rename gr-qtgui/grc/{qtgui_histogram_sink_x.xml => qtgui_histogram_sink_x.xml.cmakein} (99%)
|
|
rename gr-qtgui/grc/{qtgui_label.xml => qtgui_label.xml.cmakein} (97%)
|
|
rename gr-qtgui/grc/{qtgui_number_sink.xml => qtgui_number_sink.xml.cmakein} (99%)
|
|
rename gr-qtgui/grc/{qtgui_push_button.xml => qtgui_push_button.xml.cmakein} (97%)
|
|
rename gr-qtgui/grc/{qtgui_range.xml => qtgui_range.xml.cmakein} (100%)
|
|
rename gr-qtgui/grc/{qtgui_sink_x.xml => qtgui_sink_x.xml.cmakein} (98%)
|
|
rename gr-qtgui/grc/{qtgui_tab_widget.xml => qtgui_tab_widget.xml.cmakein} (99%)
|
|
rename gr-qtgui/grc/{qtgui_time_raster_x.xml => qtgui_time_raster_x.xml.cmakein} (99%)
|
|
rename gr-qtgui/grc/{qtgui_time_sink_x.xml => qtgui_time_sink_x.xml.cmakein} (99%)
|
|
rename gr-qtgui/grc/{qtgui_vector_sink_f.xml => qtgui_vector_sink_f.xml.cmakein} (99%)
|
|
rename gr-qtgui/grc/{qtgui_waterfall_sink_x.xml => qtgui_waterfall_sink_x.xml.cmakein} (99%)
|
|
|
|
diff --git a/gr-qtgui/grc/CMakeLists.txt b/gr-qtgui/grc/CMakeLists.txt
|
|
index d56158ac70..d01bcc52c4 100644
|
|
--- a/gr-qtgui/grc/CMakeLists.txt
|
|
+++ b/gr-qtgui/grc/CMakeLists.txt
|
|
@@ -18,5 +18,12 @@
|
|
# Boston, MA 02110-1301, USA.
|
|
|
|
########################################################################
|
|
-file(GLOB xml_files "*.xml")
|
|
+file(GLOB xml_cmakein_files "*.xml.cmakein")
|
|
+
|
|
+foreach(xml_cmakein_file IN ITEMS ${xml_cmakein_files})
|
|
+ get_filename_component(FILE_NAME ${xml_cmakein_file} NAME_WE)
|
|
+ configure_file(${xml_cmakein_file} "${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.xml" @ONLY)
|
|
+ set(xml_files ${xml_files} "${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.xml")
|
|
+endforeach(xml_cmakein_file)
|
|
+
|
|
install(FILES ${xml_files} DESTINATION ${GRC_BLOCKS_DIR} COMPONENT "qtgui_python")
|
|
diff --git a/gr-qtgui/grc/qtgui_ber_sink_b.xml b/gr-qtgui/grc/qtgui_ber_sink_b.xml.cmakein
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_ber_sink_b.xml
|
|
rename to gr-qtgui/grc/qtgui_ber_sink_b.xml.cmakein
|
|
index 085bf282be..91a87ce595 100644
|
|
--- a/gr-qtgui/grc/qtgui_ber_sink_b.xml
|
|
+++ b/gr-qtgui/grc/qtgui_ber_sink_b.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Bercurve Sink</name>
|
|
<key>qtgui_bercurve_sink</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<import>import numpy</import>
|
|
diff --git a/gr-qtgui/grc/qtgui_block_tree.xml b/gr-qtgui/grc/qtgui_block_tree.xml.cmakein
|
|
similarity index 100%
|
|
rename from gr-qtgui/grc/qtgui_block_tree.xml
|
|
rename to gr-qtgui/grc/qtgui_block_tree.xml.cmakein
|
|
diff --git a/gr-qtgui/grc/qtgui_check_box.xml b/gr-qtgui/grc/qtgui_check_box.xml.cmakein
|
|
similarity index 97%
|
|
rename from gr-qtgui/grc/qtgui_check_box.xml
|
|
rename to gr-qtgui/grc/qtgui_check_box.xml.cmakein
|
|
index ccee59dd92..9edacb24d8 100644
|
|
--- a/gr-qtgui/grc/qtgui_check_box.xml
|
|
+++ b/gr-qtgui/grc/qtgui_check_box.xml.cmakein
|
|
@@ -8,7 +8,7 @@
|
|
<block>
|
|
<name>QT GUI Check Box</name>
|
|
<key>variable_qtgui_check_box</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = '_%s_check_box'%$id
|
|
#if not $label()
|
|
diff --git a/gr-qtgui/grc/qtgui_chooser.xml b/gr-qtgui/grc/qtgui_chooser.xml.cmakein
|
|
similarity index 98%
|
|
rename from gr-qtgui/grc/qtgui_chooser.xml
|
|
rename to gr-qtgui/grc/qtgui_chooser.xml.cmakein
|
|
index f79bb8ccb3..40c782bede 100644
|
|
--- a/gr-qtgui/grc/qtgui_chooser.xml
|
|
+++ b/gr-qtgui/grc/qtgui_chooser.xml.cmakein
|
|
@@ -8,8 +8,8 @@
|
|
<block>
|
|
<name>QT GUI Chooser</name>
|
|
<key>variable_qtgui_chooser</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
- <import>from PyQt5.QtCore import QObject, pyqtSlot</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@.QtCore import QObject, pyqtSlot</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#slurp
|
|
#set $all_options = [$option0, $option1, $option2, $option3, $option4][:int($num_opts())]
|
|
diff --git a/gr-qtgui/grc/qtgui_const_sink_x.xml b/gr-qtgui/grc/qtgui_const_sink_x.xml.cmakein
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_const_sink_x.xml
|
|
rename to gr-qtgui/grc/qtgui_const_sink_x.xml.cmakein
|
|
index 10f82cce82..6fa725acb1 100644
|
|
--- a/gr-qtgui/grc/qtgui_const_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_const_sink_x.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Constellation Sink</name>
|
|
<key>qtgui_const_sink_x</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_edit_box_msg.xml b/gr-qtgui/grc/qtgui_edit_box_msg.xml.cmakein
|
|
similarity index 98%
|
|
rename from gr-qtgui/grc/qtgui_edit_box_msg.xml
|
|
rename to gr-qtgui/grc/qtgui_edit_box_msg.xml.cmakein
|
|
index d77a4b3e1b..75ff93349f 100644
|
|
--- a/gr-qtgui/grc/qtgui_edit_box_msg.xml
|
|
+++ b/gr-qtgui/grc/qtgui_edit_box_msg.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Message Edit Box</name>
|
|
<key>qtgui_edit_box_msg</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_entry.xml b/gr-qtgui/grc/qtgui_entry.xml.cmakein
|
|
similarity index 97%
|
|
rename from gr-qtgui/grc/qtgui_entry.xml
|
|
rename to gr-qtgui/grc/qtgui_entry.xml.cmakein
|
|
index fc0f4089d1..da61ee723a 100644
|
|
--- a/gr-qtgui/grc/qtgui_entry.xml
|
|
+++ b/gr-qtgui/grc/qtgui_entry.xml.cmakein
|
|
@@ -8,7 +8,7 @@
|
|
<block>
|
|
<name>QT GUI Entry</name>
|
|
<key>variable_qtgui_entry</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import eng_notation</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = 'self._%s_tool_bar'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_freq_sink_x.xml b/gr-qtgui/grc/qtgui_freq_sink_x.xml.cmakein
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_freq_sink_x.xml
|
|
rename to gr-qtgui/grc/qtgui_freq_sink_x.xml.cmakein
|
|
index ed39db7781..aaf0d75271 100644
|
|
--- a/gr-qtgui/grc/qtgui_freq_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_freq_sink_x.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Frequency Sink</name>
|
|
<key>qtgui_freq_sink_x</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
diff --git a/gr-qtgui/grc/qtgui_histogram_sink_x.xml b/gr-qtgui/grc/qtgui_histogram_sink_x.xml.cmakein
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_histogram_sink_x.xml
|
|
rename to gr-qtgui/grc/qtgui_histogram_sink_x.xml.cmakein
|
|
index 9e3dcb104f..d04a44da13 100644
|
|
--- a/gr-qtgui/grc/qtgui_histogram_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_histogram_sink_x.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Histogram Sink</name>
|
|
<key>qtgui_histogram_sink_x</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_label.xml b/gr-qtgui/grc/qtgui_label.xml.cmakein
|
|
similarity index 97%
|
|
rename from gr-qtgui/grc/qtgui_label.xml
|
|
rename to gr-qtgui/grc/qtgui_label.xml.cmakein
|
|
index 946cee36ab..c546e09dcc 100644
|
|
--- a/gr-qtgui/grc/qtgui_label.xml
|
|
+++ b/gr-qtgui/grc/qtgui_label.xml.cmakein
|
|
@@ -9,7 +9,7 @@
|
|
<block>
|
|
<name>QT GUI Label</name>
|
|
<key>variable_qtgui_label</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import eng_notation</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = 'self._%s_tool_bar'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_number_sink.xml b/gr-qtgui/grc/qtgui_number_sink.xml.cmakein
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_number_sink.xml
|
|
rename to gr-qtgui/grc/qtgui_number_sink.xml.cmakein
|
|
index 06837493c3..d4b4c5808f 100644
|
|
--- a/gr-qtgui/grc/qtgui_number_sink.xml
|
|
+++ b/gr-qtgui/grc/qtgui_number_sink.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Number Sink</name>
|
|
<key>qtgui_number_sink</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_push_button.xml b/gr-qtgui/grc/qtgui_push_button.xml.cmakein
|
|
similarity index 97%
|
|
rename from gr-qtgui/grc/qtgui_push_button.xml
|
|
rename to gr-qtgui/grc/qtgui_push_button.xml.cmakein
|
|
index 49c2e9d6f0..d99f230acf 100644
|
|
--- a/gr-qtgui/grc/qtgui_push_button.xml
|
|
+++ b/gr-qtgui/grc/qtgui_push_button.xml.cmakein
|
|
@@ -8,7 +8,7 @@
|
|
<block>
|
|
<name>QT GUI Push Button</name>
|
|
<key>variable_qtgui_push_button</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = '_%s_push_button'%$id
|
|
#if not $label()
|
|
diff --git a/gr-qtgui/grc/qtgui_range.xml b/gr-qtgui/grc/qtgui_range.xml.cmakein
|
|
similarity index 100%
|
|
rename from gr-qtgui/grc/qtgui_range.xml
|
|
rename to gr-qtgui/grc/qtgui_range.xml.cmakein
|
|
diff --git a/gr-qtgui/grc/qtgui_sink_x.xml b/gr-qtgui/grc/qtgui_sink_x.xml.cmakein
|
|
similarity index 98%
|
|
rename from gr-qtgui/grc/qtgui_sink_x.xml
|
|
rename to gr-qtgui/grc/qtgui_sink_x.xml.cmakein
|
|
index a9bc469cd2..1c75921a75 100644
|
|
--- a/gr-qtgui/grc/qtgui_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_sink_x.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Sink</name>
|
|
<key>qtgui_sink_x</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
diff --git a/gr-qtgui/grc/qtgui_tab_widget.xml b/gr-qtgui/grc/qtgui_tab_widget.xml.cmakein
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_tab_widget.xml
|
|
rename to gr-qtgui/grc/qtgui_tab_widget.xml.cmakein
|
|
index 805542cc8b..f5a1a73cdc 100644
|
|
--- a/gr-qtgui/grc/qtgui_tab_widget.xml
|
|
+++ b/gr-qtgui/grc/qtgui_tab_widget.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Tab Widget</name>
|
|
<key>qtgui_tab_widget</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<make>#set $win = 'self.%s'%$id
|
|
Qt.QTabWidget()
|
|
#set $all_labels = [$label0, $label1, $label2, $label3, $label4,
|
|
diff --git a/gr-qtgui/grc/qtgui_time_raster_x.xml b/gr-qtgui/grc/qtgui_time_raster_x.xml.cmakein
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_time_raster_x.xml
|
|
rename to gr-qtgui/grc/qtgui_time_raster_x.xml.cmakein
|
|
index d458f67eb9..94b7ef136a 100644
|
|
--- a/gr-qtgui/grc/qtgui_time_raster_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_time_raster_x.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Time Raster Sink</name>
|
|
<key>qtgui_time_raster_sink_x</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_time_sink_x.xml b/gr-qtgui/grc/qtgui_time_sink_x.xml.cmakein
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_time_sink_x.xml
|
|
rename to gr-qtgui/grc/qtgui_time_sink_x.xml.cmakein
|
|
index d4347950ea..d239917907 100644
|
|
--- a/gr-qtgui/grc/qtgui_time_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_time_sink_x.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Time Sink</name>
|
|
<key>qtgui_time_sink_x</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
diff --git a/gr-qtgui/grc/qtgui_vector_sink_f.xml b/gr-qtgui/grc/qtgui_vector_sink_f.xml.cmakein
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_vector_sink_f.xml
|
|
rename to gr-qtgui/grc/qtgui_vector_sink_f.xml.cmakein
|
|
index 0f456323bf..8b928eb7ea 100644
|
|
--- a/gr-qtgui/grc/qtgui_vector_sink_f.xml
|
|
+++ b/gr-qtgui/grc/qtgui_vector_sink_f.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Vector Sink</name>
|
|
<key>qtgui_vector_sink_f</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_waterfall_sink_x.xml b/gr-qtgui/grc/qtgui_waterfall_sink_x.xml.cmakein
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_waterfall_sink_x.xml
|
|
rename to gr-qtgui/grc/qtgui_waterfall_sink_x.xml.cmakein
|
|
index a684492246..d198ca084a 100644
|
|
--- a/gr-qtgui/grc/qtgui_waterfall_sink_x.xml
|
|
+++ b/gr-qtgui/grc/qtgui_waterfall_sink_x.xml.cmakein
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Waterfall Sink</name>
|
|
<key>qtgui_waterfall_sink_x</key>
|
|
- <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
--
|
|
2.11.0
|
|
|
|
From 7df8c4ea6559ba211222e7d7cfb152f71dbc815b Mon Sep 17 00:00:00 2001
|
|
From: Paul Cercueil <paul.cercueil@analog.com>
|
|
Date: Tue, 21 Jun 2016 18:16:06 +0200
|
|
Subject: [PATCH 10/22] gr-qtgui: Fix range.py to work with both Qt4 and Qt5
|
|
|
|
Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
|
|
---
|
|
gr-qtgui/python/qtgui/CMakeLists.txt | 10 +++++++++-
|
|
gr-qtgui/python/qtgui/{range.py => range.py.cmakein} | 2 +-
|
|
2 files changed, 10 insertions(+), 2 deletions(-)
|
|
rename gr-qtgui/python/qtgui/{range.py => range.py.cmakein} (99%)
|
|
|
|
diff --git a/gr-qtgui/python/qtgui/CMakeLists.txt b/gr-qtgui/python/qtgui/CMakeLists.txt
|
|
index 1c20033db2..7e2d0321c4 100644
|
|
--- a/gr-qtgui/python/qtgui/CMakeLists.txt
|
|
+++ b/gr-qtgui/python/qtgui/CMakeLists.txt
|
|
@@ -20,9 +20,17 @@
|
|
########################################################################
|
|
include(GrPython)
|
|
|
|
+if (DESIRED_QT_VERSION MATCHES 4)
|
|
+ set(PY_QT_IMPORT "from PyQt4 import Qt, QtCore, QtGui as QtWidgets")
|
|
+else()
|
|
+ set(PY_QT_IMPORT "from PyQt5 import Qt, QtCore, QtWidgets")
|
|
+endif()
|
|
+
|
|
+configure_file(range.py.cmakein "${CMAKE_CURRENT_BINARY_DIR}/range.py" @ONLY)
|
|
+
|
|
GR_PYTHON_INSTALL(
|
|
FILES __init__.py
|
|
- range.py
|
|
+ "${CMAKE_CURRENT_BINARY_DIR}/range.py"
|
|
util.py
|
|
DESTINATION ${GR_PYTHON_DIR}/gnuradio/qtgui
|
|
COMPONENT "qtgui_python"
|
|
diff --git a/gr-qtgui/python/qtgui/range.py b/gr-qtgui/python/qtgui/range.py.cmakein
|
|
similarity index 99%
|
|
rename from gr-qtgui/python/qtgui/range.py
|
|
rename to gr-qtgui/python/qtgui/range.py.cmakein
|
|
index f972844114..9ed7706195 100755
|
|
--- a/gr-qtgui/python/qtgui/range.py
|
|
+++ b/gr-qtgui/python/qtgui/range.py.cmakein
|
|
@@ -21,7 +21,7 @@
|
|
# Boston, MA 02110-1301, USA.
|
|
#
|
|
|
|
-from PyQt5 import Qt, QtCore, QtWidgets
|
|
+@PY_QT_IMPORT@
|
|
import util
|
|
|
|
class Range(object):
|
|
--
|
|
2.11.0
|
|
|
|
From 988c1520d5b6f763caa0164faef404185e7dbc85 Mon Sep 17 00:00:00 2001
|
|
From: Paul Cercueil <paul.cercueil@analog.com>
|
|
Date: Tue, 21 Jun 2016 18:30:21 +0200
|
|
Subject: [PATCH 11/22] gr-qtgui: Re-introduce some Qt4-specific code
|
|
|
|
Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
|
|
---
|
|
gr-qtgui/lib/const_sink_c_impl.cc | 4 ++++
|
|
gr-qtgui/lib/freq_sink_c_impl.cc | 4 ++++
|
|
gr-qtgui/lib/freq_sink_f_impl.cc | 4 ++++
|
|
gr-qtgui/lib/histogram_sink_f_impl.cc | 4 ++++
|
|
gr-qtgui/lib/sink_c_impl.cc | 4 ++++
|
|
gr-qtgui/lib/sink_f_impl.cc | 4 ++++
|
|
gr-qtgui/lib/time_raster_sink_b_impl.cc | 4 ++++
|
|
gr-qtgui/lib/time_raster_sink_f_impl.cc | 4 ++++
|
|
gr-qtgui/lib/time_sink_c_impl.cc | 4 ++++
|
|
gr-qtgui/lib/time_sink_f_impl.cc | 4 ++++
|
|
gr-qtgui/lib/vector_sink_f_impl.cc | 4 ++++
|
|
gr-qtgui/lib/waterfall_sink_c_impl.cc | 4 ++++
|
|
gr-qtgui/lib/waterfall_sink_f_impl.cc | 4 ++++
|
|
13 files changed, 52 insertions(+)
|
|
|
|
--- a/gr-qtgui/lib/const_sink_c_impl.cc
|
|
+++ b/gr-qtgui/lib/const_sink_c_impl.cc
|
|
@@ -127,6 +127,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/freq_sink_c_impl.cc
|
|
+++ b/gr-qtgui/lib/freq_sink_c_impl.cc
|
|
@@ -156,6 +156,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/freq_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/freq_sink_f_impl.cc
|
|
@@ -154,6 +154,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/histogram_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/histogram_sink_f_impl.cc
|
|
@@ -115,6 +115,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/sink_c_impl.cc
|
|
+++ b/gr-qtgui/lib/sink_c_impl.cc
|
|
@@ -131,6 +131,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/sink_f_impl.cc
|
|
@@ -131,6 +131,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/time_raster_sink_b_impl.cc
|
|
+++ b/gr-qtgui/lib/time_raster_sink_b_impl.cc
|
|
@@ -130,6 +130,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/time_raster_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/time_raster_sink_f_impl.cc
|
|
@@ -128,6 +128,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/time_sink_c_impl.cc
|
|
+++ b/gr-qtgui/lib/time_sink_c_impl.cc
|
|
@@ -134,6 +134,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/time_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/time_sink_f_impl.cc
|
|
@@ -129,6 +129,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/vector_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/vector_sink_f_impl.cc
|
|
@@ -140,6 +140,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/waterfall_sink_c_impl.cc
|
|
+++ b/gr-qtgui/lib/waterfall_sink_c_impl.cc
|
|
@@ -159,6 +159,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
--- a/gr-qtgui/lib/waterfall_sink_f_impl.cc
|
|
+++ b/gr-qtgui/lib/waterfall_sink_f_impl.cc
|
|
@@ -155,6 +155,10 @@
|
|
d_qApplication = qApp;
|
|
}
|
|
else {
|
|
+#if QT_VERSION >= 0x040500 && QT_VERSION < 0x050000
|
|
+ std::string style = prefs::singleton()->get_string("qtgui", "style", "raster");
|
|
+ QApplication::setGraphicsSystem(QString(style.c_str()));
|
|
+#endif
|
|
d_qApplication = new QApplication(d_argc, &d_argv);
|
|
}
|
|
|
|
From 6cd8e365b7e519f49c81cfeb7137200d7b5e8b2f Mon Sep 17 00:00:00 2001
|
|
From: Paul Cercueil <paul.cercueil@analog.com>
|
|
Date: Tue, 21 Jun 2016 19:27:19 +0200
|
|
Subject: [PATCH 12/22] grc: Fix generation of Python code for Qt4 and Qt5
|
|
|
|
Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
|
|
---
|
|
CMakeLists.txt | 2 +-
|
|
grc/blocks/CMakeLists.txt | 4 +++-
|
|
grc/blocks/{options.xml => options.xml.cmakein} | 2 +-
|
|
grc/core/generator/flow_graph.tmpl | 13 ++++++++++++-
|
|
4 files changed, 17 insertions(+), 4 deletions(-)
|
|
rename grc/blocks/{options.xml => options.xml.cmakein} (99%)
|
|
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -528,7 +528,6 @@
|
|
add_subdirectory(docs)
|
|
add_subdirectory(gnuradio-runtime)
|
|
add_subdirectory(gr-blocks)
|
|
-add_subdirectory(grc)
|
|
add_subdirectory(gr-fec)
|
|
add_subdirectory(gr-fft)
|
|
add_subdirectory(gr-filter)
|
|
@@ -551,6 +550,7 @@
|
|
add_subdirectory(gr-wavelet)
|
|
add_subdirectory(gr-wxgui)
|
|
add_subdirectory(gr-zeromq)
|
|
+add_subdirectory(grc)
|
|
|
|
# Defining GR_CTRLPORT for gnuradio/config.h
|
|
if(ENABLE_GR_CTRLPORT)
|
|
--- a/grc/blocks/CMakeLists.txt
|
|
+++ b/grc/blocks/CMakeLists.txt
|
|
@@ -22,6 +22,8 @@
|
|
|
|
file(GLOB xml_files "*.xml")
|
|
|
|
+configure_file(options.xml.cmakein "${CMAKE_CURRENT_BINARY_DIR}/options.xml" @ONLY)
|
|
+
|
|
macro(GEN_BLOCK_XML _generator _xml_block)
|
|
set(generator ${CMAKE_CURRENT_SOURCE_DIR}/${_generator})
|
|
set(xml_block ${CMAKE_CURRENT_BINARY_DIR}/${_xml_block})
|
|
@@ -37,7 +39,7 @@
|
|
add_custom_target(grc_generated_xml ALL DEPENDS ${generated_xml_files})
|
|
|
|
install(
|
|
- FILES ${xml_files} ${generated_xml_files}
|
|
+ FILES ${xml_files} "${CMAKE_CURRENT_BINARY_DIR}/options.xml" ${generated_xml_files}
|
|
DESTINATION ${GRC_BLOCKS_DIR}
|
|
COMPONENT "grc"
|
|
)
|
|
--- a/grc/blocks/options.xml
|
|
+++ /dev/null
|
|
@@ -1,294 +0,0 @@
|
|
-<?xml version="1.0"?>
|
|
-<!--
|
|
-###################################################
|
|
-##Options Block:
|
|
-## options for window size,
|
|
-## and flow graph building.
|
|
-###################################################
|
|
- -->
|
|
-<block>
|
|
- <name>Options</name>
|
|
- <key>options</key>
|
|
- <import>from gnuradio import gr</import>
|
|
- <import>from gnuradio.filter import firdes</import>
|
|
- <import>#if $generate_options() == 'wx_gui'
|
|
-from grc_gnuradio import wxgui as grc_wxgui
|
|
-import wx
|
|
-#end if
|
|
-#if $generate_options() == 'qt_gui'
|
|
-from PyQt5 import Qt
|
|
-import sys
|
|
-#end if
|
|
-#if $generate_options() == 'bokeh_gui'
|
|
-import time
|
|
-import signal
|
|
-import functools
|
|
-from bokeh.client import push_session
|
|
-from bokeh.plotting import curdoc
|
|
-#end if
|
|
-#if not $generate_options().startswith('hb')
|
|
-from optparse import OptionParser
|
|
-from gnuradio.eng_option import eng_option
|
|
-from gnuradio import eng_notation
|
|
-#end if</import>
|
|
- <make></make>
|
|
- <callback>if $run: self.start()
|
|
-else: self.stop(); self.wait()</callback>
|
|
- <param>
|
|
- <name>Title</name>
|
|
- <key>title</key>
|
|
- <value></value>
|
|
- <type>string</type>
|
|
- <hide>#if $title() then 'none' else 'part'#</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Author</name>
|
|
- <key>author</key>
|
|
- <value></value>
|
|
- <type>string</type>
|
|
- <hide>#if $author() then 'none' else 'part'#</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Description</name>
|
|
- <key>description</key>
|
|
- <value></value>
|
|
- <type>string</type>
|
|
- <hide>#if $description() then 'none' else 'part'#</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Canvas Size</name>
|
|
- <key>window_size</key>
|
|
- <value></value>
|
|
- <type>int_vector</type>
|
|
- <hide>part</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Generate Options</name>
|
|
- <key>generate_options</key>
|
|
- <value>qt_gui</value>
|
|
- <type>enum</type>
|
|
- <option>
|
|
- <name>Bokeh GUI</name>
|
|
- <key>bokeh_gui</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>QT GUI</name>
|
|
- <key>qt_gui</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>WX GUI</name>
|
|
- <key>wx_gui</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>No GUI</name>
|
|
- <key>no_gui</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Hier Block</name>
|
|
- <key>hb</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Hier Block (QT GUI)</name>
|
|
- <key>hb_qt_gui</key>
|
|
- </option>
|
|
- </param>
|
|
- <param>
|
|
- <name>Category</name>
|
|
- <key>category</key>
|
|
- <value>[GRC Hier Blocks]</value>
|
|
- <type>string</type>
|
|
- <hide>#if $generate_options().startswith('hb') then 'none' else 'all'#</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Run Options</name>
|
|
- <key>run_options</key>
|
|
- <value>prompt</value>
|
|
- <type>enum</type>
|
|
- <hide>#if $generate_options() == 'no_gui' then 'none' else 'all'#</hide>
|
|
- <option>
|
|
- <name>Run to Completion</name>
|
|
- <key>run</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Prompt for Exit</name>
|
|
- <key>prompt</key>
|
|
- </option>
|
|
- </param>
|
|
- <param>
|
|
- <name>Widget Placement</name>
|
|
- <key>placement</key>
|
|
- <value>(0,0)</value>
|
|
- <type>int_vector</type>
|
|
- <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Sizing Mode</name>
|
|
- <key>sizing_mode</key>
|
|
- <value>fixed</value>
|
|
- <type>enum</type>
|
|
- <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide>
|
|
- <option>
|
|
- <name>Fixed</name>
|
|
- <key>fixed</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Stretch Both</name>
|
|
- <key>stretch_both</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Scale Width</name>
|
|
- <key>scale_width</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Scale Height</name>
|
|
- <key>scale_height</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Scale Both</name>
|
|
- <key>scale_both</key>
|
|
- </option>
|
|
- </param>
|
|
- <param>
|
|
- <name>Run</name>
|
|
- <key>run</key>
|
|
- <value>True</value>
|
|
- <type>bool</type>
|
|
- <hide>
|
|
-#if $generate_options() in ('qt_gui', 'wx_gui', 'bokeh_gui')
|
|
- #if $run()
|
|
- part
|
|
- #else
|
|
- none
|
|
- #end if
|
|
-#else
|
|
- all
|
|
-#end if
|
|
- </hide>
|
|
- <option>
|
|
- <name>Autostart</name>
|
|
- <key>True</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Off</name>
|
|
- <key>False</key>
|
|
- </option>
|
|
- </param>
|
|
- <param>
|
|
- <name>Max Number of Output</name>
|
|
- <key>max_nouts</key>
|
|
- <value>0</value>
|
|
- <type>int</type>
|
|
- <hide>#if $generate_options().startswith('hb')
|
|
-all#slurp
|
|
-#elif $max_nouts()
|
|
-none#slurp
|
|
-#else
|
|
-part#slurp
|
|
-#end if</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Realtime Scheduling</name>
|
|
- <key>realtime_scheduling</key>
|
|
- <value></value>
|
|
- <type>enum</type>
|
|
- <hide>#if $generate_options().startswith('hb')
|
|
-all#slurp
|
|
-#elif $realtime_scheduling()
|
|
-none#slurp
|
|
-#else
|
|
-part#slurp
|
|
-#end if</hide>
|
|
- <option>
|
|
- <name>Off</name>
|
|
- <key></key>
|
|
- </option>
|
|
- <option>
|
|
- <name>On</name>
|
|
- <key>1</key>
|
|
- </option>
|
|
- </param>
|
|
- <param>
|
|
- <name>QSS Theme</name>
|
|
- <key>qt_qss_theme</key>
|
|
- <value></value>
|
|
- <type>file_open</type>
|
|
- <hide>
|
|
-#if $generate_options() in ('qt_gui',)
|
|
- #if $qt_qss_theme()
|
|
- none
|
|
- #else
|
|
- part
|
|
- #end if
|
|
-#else
|
|
- all
|
|
-#end if
|
|
-</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Thread-safe setters</name>
|
|
- <key>thread_safe_setters</key>
|
|
- <value></value>
|
|
- <type>enum</type>
|
|
- <hide>part</hide>
|
|
- <option>
|
|
- <name>Off</name>
|
|
- <key></key>
|
|
- </option>
|
|
- <option>
|
|
- <name>On</name>
|
|
- <key>1</key>
|
|
- </option>
|
|
- <tab>Advanced</tab>
|
|
- </param>
|
|
- <param>
|
|
- <name>Run Command</name>
|
|
- <key>run_command</key>
|
|
- <value>{python} -u {filename}</value>
|
|
- <type>string</type>
|
|
- <hide>#if $generate_options().startswith('hb')
|
|
-all#slurp
|
|
-#else
|
|
-part#slurp
|
|
-#end if</hide>
|
|
- <tab>Advanced</tab>
|
|
- </param>
|
|
- <param>
|
|
- <name>Hier Block Source Path</name>
|
|
- <key>hier_block_src_path</key>
|
|
- <value>.:</value>
|
|
- <type>string</type>
|
|
- <hide>part</hide>
|
|
- <tab>Advanced</tab>
|
|
- </param>
|
|
- <check>not $window_size or len($window_size) == 2</check>
|
|
- <check>not $window_size or 300 <= $(window_size)[0] <= 4096</check>
|
|
- <check>not $window_size or 300 <= $(window_size)[1] <= 4096</check>
|
|
- <check>len($placement) == 4 or len($placement) == 2</check>
|
|
- <check>all(i >= 0 for i in $(placement))</check>
|
|
- <doc>
|
|
-The options block sets special parameters for the flow graph. \
|
|
-Only one option block is allowed per flow graph.
|
|
-
|
|
-Title, author, and description parameters are for identification purposes.
|
|
-
|
|
-The window size controls the dimensions of the flow graph editor. \
|
|
-The window size (width, height) must be between (300, 300) and (4096, 4096).
|
|
-
|
|
-The generate options controls the type of code generated. \
|
|
-Non-graphical flow graphs should avoid using graphical sinks or graphical variable controls.
|
|
-
|
|
-In a graphical application, \
|
|
-run can be controlled by a variable to start and stop the flowgraph at runtime.
|
|
-
|
|
-The id of this block determines the name of the generated file and the name of the class. \
|
|
-For example, an id of my_block will generate the file my_block.py and class my_block(gr....
|
|
-
|
|
-The category parameter determines the placement of the block in the block selection window. \
|
|
-The category only applies when creating hier blocks. \
|
|
-To put hier blocks into the root category, enter / for the category.
|
|
-
|
|
-The Max Number of Output is the maximum number of output items allowed for any block \
|
|
-in the flowgraph; to disable this set the max_nouts equal to 0.\
|
|
-Use this to adjust the maximum latency a flowgraph can exhibit.
|
|
- </doc>
|
|
-</block>
|
|
--- /dev/null
|
|
+++ b/grc/blocks/options.xml.cmakein
|
|
@@ -0,0 +1,294 @@
|
|
+<?xml version="1.0"?>
|
|
+<!--
|
|
+###################################################
|
|
+##Options Block:
|
|
+## options for window size,
|
|
+## and flow graph building.
|
|
+###################################################
|
|
+ -->
|
|
+<block>
|
|
+ <name>Options</name>
|
|
+ <key>options</key>
|
|
+ <import>from gnuradio import gr</import>
|
|
+ <import>from gnuradio.filter import firdes</import>
|
|
+ <import>#if $generate_options() == 'wx_gui'
|
|
+from grc_gnuradio import wxgui as grc_wxgui
|
|
+import wx
|
|
+#end if
|
|
+#if $generate_options() == 'qt_gui'
|
|
+from PyQt@DESIRED_QT_VERSION@ import Qt
|
|
+import sys
|
|
+#end if
|
|
+#if $generate_options() == 'bokeh_gui'
|
|
+import time
|
|
+import signal
|
|
+import functools
|
|
+from bokeh.client import push_session
|
|
+from bokeh.plotting import curdoc
|
|
+#end if
|
|
+#if not $generate_options().startswith('hb')
|
|
+from optparse import OptionParser
|
|
+from gnuradio.eng_option import eng_option
|
|
+from gnuradio import eng_notation
|
|
+#end if</import>
|
|
+ <make></make>
|
|
+ <callback>if $run: self.start()
|
|
+else: self.stop(); self.wait()</callback>
|
|
+ <param>
|
|
+ <name>Title</name>
|
|
+ <key>title</key>
|
|
+ <value></value>
|
|
+ <type>string</type>
|
|
+ <hide>#if $title() then 'none' else 'part'#</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Author</name>
|
|
+ <key>author</key>
|
|
+ <value></value>
|
|
+ <type>string</type>
|
|
+ <hide>#if $author() then 'none' else 'part'#</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Description</name>
|
|
+ <key>description</key>
|
|
+ <value></value>
|
|
+ <type>string</type>
|
|
+ <hide>#if $description() then 'none' else 'part'#</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Canvas Size</name>
|
|
+ <key>window_size</key>
|
|
+ <value></value>
|
|
+ <type>int_vector</type>
|
|
+ <hide>part</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Generate Options</name>
|
|
+ <key>generate_options</key>
|
|
+ <value>qt_gui</value>
|
|
+ <type>enum</type>
|
|
+ <option>
|
|
+ <name>Bokeh GUI</name>
|
|
+ <key>bokeh_gui</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>QT GUI</name>
|
|
+ <key>qt_gui</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>WX GUI</name>
|
|
+ <key>wx_gui</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>No GUI</name>
|
|
+ <key>no_gui</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Hier Block</name>
|
|
+ <key>hb</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Hier Block (QT GUI)</name>
|
|
+ <key>hb_qt_gui</key>
|
|
+ </option>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Category</name>
|
|
+ <key>category</key>
|
|
+ <value>[GRC Hier Blocks]</value>
|
|
+ <type>string</type>
|
|
+ <hide>#if $generate_options().startswith('hb') then 'none' else 'all'#</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Run Options</name>
|
|
+ <key>run_options</key>
|
|
+ <value>prompt</value>
|
|
+ <type>enum</type>
|
|
+ <hide>#if $generate_options() == 'no_gui' then 'none' else 'all'#</hide>
|
|
+ <option>
|
|
+ <name>Run to Completion</name>
|
|
+ <key>run</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Prompt for Exit</name>
|
|
+ <key>prompt</key>
|
|
+ </option>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Widget Placement</name>
|
|
+ <key>placement</key>
|
|
+ <value>(0,0)</value>
|
|
+ <type>int_vector</type>
|
|
+ <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Sizing Mode</name>
|
|
+ <key>sizing_mode</key>
|
|
+ <value>fixed</value>
|
|
+ <type>enum</type>
|
|
+ <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide>
|
|
+ <option>
|
|
+ <name>Fixed</name>
|
|
+ <key>fixed</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Stretch Both</name>
|
|
+ <key>stretch_both</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Scale Width</name>
|
|
+ <key>scale_width</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Scale Height</name>
|
|
+ <key>scale_height</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Scale Both</name>
|
|
+ <key>scale_both</key>
|
|
+ </option>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Run</name>
|
|
+ <key>run</key>
|
|
+ <value>True</value>
|
|
+ <type>bool</type>
|
|
+ <hide>
|
|
+#if $generate_options() in ('qt_gui', 'wx_gui', 'bokeh_gui')
|
|
+ #if $run()
|
|
+ part
|
|
+ #else
|
|
+ none
|
|
+ #end if
|
|
+#else
|
|
+ all
|
|
+#end if
|
|
+ </hide>
|
|
+ <option>
|
|
+ <name>Autostart</name>
|
|
+ <key>True</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Off</name>
|
|
+ <key>False</key>
|
|
+ </option>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Max Number of Output</name>
|
|
+ <key>max_nouts</key>
|
|
+ <value>0</value>
|
|
+ <type>int</type>
|
|
+ <hide>#if $generate_options().startswith('hb')
|
|
+all#slurp
|
|
+#elif $max_nouts()
|
|
+none#slurp
|
|
+#else
|
|
+part#slurp
|
|
+#end if</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Realtime Scheduling</name>
|
|
+ <key>realtime_scheduling</key>
|
|
+ <value></value>
|
|
+ <type>enum</type>
|
|
+ <hide>#if $generate_options().startswith('hb')
|
|
+all#slurp
|
|
+#elif $realtime_scheduling()
|
|
+none#slurp
|
|
+#else
|
|
+part#slurp
|
|
+#end if</hide>
|
|
+ <option>
|
|
+ <name>Off</name>
|
|
+ <key></key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>On</name>
|
|
+ <key>1</key>
|
|
+ </option>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>QSS Theme</name>
|
|
+ <key>qt_qss_theme</key>
|
|
+ <value></value>
|
|
+ <type>file_open</type>
|
|
+ <hide>
|
|
+#if $generate_options() in ('qt_gui',)
|
|
+ #if $qt_qss_theme()
|
|
+ none
|
|
+ #else
|
|
+ part
|
|
+ #end if
|
|
+#else
|
|
+ all
|
|
+#end if
|
|
+</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Thread-safe setters</name>
|
|
+ <key>thread_safe_setters</key>
|
|
+ <value></value>
|
|
+ <type>enum</type>
|
|
+ <hide>part</hide>
|
|
+ <option>
|
|
+ <name>Off</name>
|
|
+ <key></key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>On</name>
|
|
+ <key>1</key>
|
|
+ </option>
|
|
+ <tab>Advanced</tab>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Run Command</name>
|
|
+ <key>run_command</key>
|
|
+ <value>{python} -u {filename}</value>
|
|
+ <type>string</type>
|
|
+ <hide>#if $generate_options().startswith('hb')
|
|
+all#slurp
|
|
+#else
|
|
+part#slurp
|
|
+#end if</hide>
|
|
+ <tab>Advanced</tab>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Hier Block Source Path</name>
|
|
+ <key>hier_block_src_path</key>
|
|
+ <value>.:</value>
|
|
+ <type>string</type>
|
|
+ <hide>part</hide>
|
|
+ <tab>Advanced</tab>
|
|
+ </param>
|
|
+ <check>not $window_size or len($window_size) == 2</check>
|
|
+ <check>not $window_size or 300 <= $(window_size)[0] <= 4096</check>
|
|
+ <check>not $window_size or 300 <= $(window_size)[1] <= 4096</check>
|
|
+ <check>len($placement) == 4 or len($placement) == 2</check>
|
|
+ <check>all(i >= 0 for i in $(placement))</check>
|
|
+ <doc>
|
|
+The options block sets special parameters for the flow graph. \
|
|
+Only one option block is allowed per flow graph.
|
|
+
|
|
+Title, author, and description parameters are for identification purposes.
|
|
+
|
|
+The window size controls the dimensions of the flow graph editor. \
|
|
+The window size (width, height) must be between (300, 300) and (4096, 4096).
|
|
+
|
|
+The generate options controls the type of code generated. \
|
|
+Non-graphical flow graphs should avoid using graphical sinks or graphical variable controls.
|
|
+
|
|
+In a graphical application, \
|
|
+run can be controlled by a variable to start and stop the flowgraph at runtime.
|
|
+
|
|
+The id of this block determines the name of the generated file and the name of the class. \
|
|
+For example, an id of my_block will generate the file my_block.py and class my_block(gr....
|
|
+
|
|
+The category parameter determines the placement of the block in the block selection window. \
|
|
+The category only applies when creating hier blocks. \
|
|
+To put hier blocks into the root category, enter / for the category.
|
|
+
|
|
+The Max Number of Output is the maximum number of output items allowed for any block \
|
|
+in the flowgraph; to disable this set the max_nouts equal to 0.\
|
|
+Use this to adjust the maximum latency a flowgraph can exhibit.
|
|
+ </doc>
|
|
+</block>
|
|
--- a/grc/core/generator/flow_graph.tmpl
|
|
+++ b/grc/core/generator/flow_graph.tmpl
|
|
@@ -36,6 +36,10 @@
|
|
import threading
|
|
#end if
|
|
|
|
+#if $generate_options == 'qt_gui'
|
|
+from distutils.version import StrictVersion
|
|
+#end if
|
|
+
|
|
## Call XInitThreads as the _very_ first thing.
|
|
## After some Qt import, it's too late
|
|
#if $generate_options in ('wx_gui', 'qt_gui', 'bokeh_gui')
|
|
From ab58fcfd12be3e60a9dfaac757a3b8c663c2fc4b Mon Sep 17 00:00:00 2001
|
|
From: Sebastian Koslowski <koslowski@kit.edu>
|
|
Date: Tue, 30 Aug 2016 09:49:58 +0200
|
|
Subject: [PATCH 13/22] grc: replace templated xml files with search and
|
|
replace for qt4
|
|
|
|
---
|
|
grc/blocks/CMakeLists.txt | 23 +++++++++++++++++++----
|
|
grc/blocks/{options.xml.cmakein => options.xml} | 2 +-
|
|
2 files changed, 20 insertions(+), 5 deletions(-)
|
|
rename grc/blocks/{options.xml.cmakein => options.xml} (99%)
|
|
|
|
--- a/grc/blocks/CMakeLists.txt
|
|
+++ b/grc/blocks/CMakeLists.txt
|
|
@@ -22,7 +22,18 @@
|
|
|
|
file(GLOB xml_files "*.xml")
|
|
|
|
-configure_file(options.xml.cmakein "${CMAKE_CURRENT_BINARY_DIR}/options.xml" @ONLY)
|
|
+macro(REPLACE_IN_FILE _xml_block match replace)
|
|
+ set(xml_block_src "${CMAKE_CURRENT_SOURCE_DIR}/${_xml_block}")
|
|
+ set(xml_block "${CMAKE_CURRENT_BINARY_DIR}/${_xml_block}")
|
|
+
|
|
+ list(REMOVE_ITEM xml_files "${xml_block_src}")
|
|
+ file(READ "${xml_block_src}" xml_block_src_text)
|
|
+ string(REPLACE "${match}" "${replace}"
|
|
+ xml_block_text "${xml_block_src_text}")
|
|
+ file(WRITE "${xml_block}" "${xml_block_text}")
|
|
+
|
|
+ list(APPEND generated_xml_files "${xml_block}")
|
|
+endmacro()
|
|
|
|
macro(GEN_BLOCK_XML _generator _xml_block)
|
|
set(generator ${CMAKE_CURRENT_SOURCE_DIR}/${_generator})
|
|
@@ -32,14 +43,18 @@
|
|
DEPENDS ${generator} OUTPUT ${xml_block}
|
|
COMMAND ${PYTHON_EXECUTABLE} ${generator} ${xml_block}
|
|
)
|
|
-endmacro(GEN_BLOCK_XML)
|
|
+endmacro()
|
|
+
|
|
+GEN_BLOCK_XML(variable_struct.xml.py variable_struct.xml)
|
|
|
|
-GEN_BLOCK_XML(variable_struct.xml.py variable_struct.xml)
|
|
+if(DESIRED_QT_VERSION EQUAL 4)
|
|
+ REPLACE_IN_FILE(options.xml PyQt5 PyQt4)
|
|
+endif()
|
|
|
|
add_custom_target(grc_generated_xml ALL DEPENDS ${generated_xml_files})
|
|
|
|
install(
|
|
- FILES ${xml_files} "${CMAKE_CURRENT_BINARY_DIR}/options.xml" ${generated_xml_files}
|
|
+ FILES ${xml_files} ${generated_xml_files}
|
|
DESTINATION ${GRC_BLOCKS_DIR}
|
|
COMPONENT "grc"
|
|
)
|
|
--- a/grc/blocks/options.xml.cmakein
|
|
+++ /dev/null
|
|
@@ -1,294 +0,0 @@
|
|
-<?xml version="1.0"?>
|
|
-<!--
|
|
-###################################################
|
|
-##Options Block:
|
|
-## options for window size,
|
|
-## and flow graph building.
|
|
-###################################################
|
|
- -->
|
|
-<block>
|
|
- <name>Options</name>
|
|
- <key>options</key>
|
|
- <import>from gnuradio import gr</import>
|
|
- <import>from gnuradio.filter import firdes</import>
|
|
- <import>#if $generate_options() == 'wx_gui'
|
|
-from grc_gnuradio import wxgui as grc_wxgui
|
|
-import wx
|
|
-#end if
|
|
-#if $generate_options() == 'qt_gui'
|
|
-from PyQt@DESIRED_QT_VERSION@ import Qt
|
|
-import sys
|
|
-#end if
|
|
-#if $generate_options() == 'bokeh_gui'
|
|
-import time
|
|
-import signal
|
|
-import functools
|
|
-from bokeh.client import push_session
|
|
-from bokeh.plotting import curdoc
|
|
-#end if
|
|
-#if not $generate_options().startswith('hb')
|
|
-from optparse import OptionParser
|
|
-from gnuradio.eng_option import eng_option
|
|
-from gnuradio import eng_notation
|
|
-#end if</import>
|
|
- <make></make>
|
|
- <callback>if $run: self.start()
|
|
-else: self.stop(); self.wait()</callback>
|
|
- <param>
|
|
- <name>Title</name>
|
|
- <key>title</key>
|
|
- <value></value>
|
|
- <type>string</type>
|
|
- <hide>#if $title() then 'none' else 'part'#</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Author</name>
|
|
- <key>author</key>
|
|
- <value></value>
|
|
- <type>string</type>
|
|
- <hide>#if $author() then 'none' else 'part'#</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Description</name>
|
|
- <key>description</key>
|
|
- <value></value>
|
|
- <type>string</type>
|
|
- <hide>#if $description() then 'none' else 'part'#</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Canvas Size</name>
|
|
- <key>window_size</key>
|
|
- <value></value>
|
|
- <type>int_vector</type>
|
|
- <hide>part</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Generate Options</name>
|
|
- <key>generate_options</key>
|
|
- <value>qt_gui</value>
|
|
- <type>enum</type>
|
|
- <option>
|
|
- <name>Bokeh GUI</name>
|
|
- <key>bokeh_gui</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>QT GUI</name>
|
|
- <key>qt_gui</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>WX GUI</name>
|
|
- <key>wx_gui</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>No GUI</name>
|
|
- <key>no_gui</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Hier Block</name>
|
|
- <key>hb</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Hier Block (QT GUI)</name>
|
|
- <key>hb_qt_gui</key>
|
|
- </option>
|
|
- </param>
|
|
- <param>
|
|
- <name>Category</name>
|
|
- <key>category</key>
|
|
- <value>[GRC Hier Blocks]</value>
|
|
- <type>string</type>
|
|
- <hide>#if $generate_options().startswith('hb') then 'none' else 'all'#</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Run Options</name>
|
|
- <key>run_options</key>
|
|
- <value>prompt</value>
|
|
- <type>enum</type>
|
|
- <hide>#if $generate_options() == 'no_gui' then 'none' else 'all'#</hide>
|
|
- <option>
|
|
- <name>Run to Completion</name>
|
|
- <key>run</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Prompt for Exit</name>
|
|
- <key>prompt</key>
|
|
- </option>
|
|
- </param>
|
|
- <param>
|
|
- <name>Widget Placement</name>
|
|
- <key>placement</key>
|
|
- <value>(0,0)</value>
|
|
- <type>int_vector</type>
|
|
- <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Sizing Mode</name>
|
|
- <key>sizing_mode</key>
|
|
- <value>fixed</value>
|
|
- <type>enum</type>
|
|
- <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide>
|
|
- <option>
|
|
- <name>Fixed</name>
|
|
- <key>fixed</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Stretch Both</name>
|
|
- <key>stretch_both</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Scale Width</name>
|
|
- <key>scale_width</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Scale Height</name>
|
|
- <key>scale_height</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Scale Both</name>
|
|
- <key>scale_both</key>
|
|
- </option>
|
|
- </param>
|
|
- <param>
|
|
- <name>Run</name>
|
|
- <key>run</key>
|
|
- <value>True</value>
|
|
- <type>bool</type>
|
|
- <hide>
|
|
-#if $generate_options() in ('qt_gui', 'wx_gui', 'bokeh_gui')
|
|
- #if $run()
|
|
- part
|
|
- #else
|
|
- none
|
|
- #end if
|
|
-#else
|
|
- all
|
|
-#end if
|
|
- </hide>
|
|
- <option>
|
|
- <name>Autostart</name>
|
|
- <key>True</key>
|
|
- </option>
|
|
- <option>
|
|
- <name>Off</name>
|
|
- <key>False</key>
|
|
- </option>
|
|
- </param>
|
|
- <param>
|
|
- <name>Max Number of Output</name>
|
|
- <key>max_nouts</key>
|
|
- <value>0</value>
|
|
- <type>int</type>
|
|
- <hide>#if $generate_options().startswith('hb')
|
|
-all#slurp
|
|
-#elif $max_nouts()
|
|
-none#slurp
|
|
-#else
|
|
-part#slurp
|
|
-#end if</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Realtime Scheduling</name>
|
|
- <key>realtime_scheduling</key>
|
|
- <value></value>
|
|
- <type>enum</type>
|
|
- <hide>#if $generate_options().startswith('hb')
|
|
-all#slurp
|
|
-#elif $realtime_scheduling()
|
|
-none#slurp
|
|
-#else
|
|
-part#slurp
|
|
-#end if</hide>
|
|
- <option>
|
|
- <name>Off</name>
|
|
- <key></key>
|
|
- </option>
|
|
- <option>
|
|
- <name>On</name>
|
|
- <key>1</key>
|
|
- </option>
|
|
- </param>
|
|
- <param>
|
|
- <name>QSS Theme</name>
|
|
- <key>qt_qss_theme</key>
|
|
- <value></value>
|
|
- <type>file_open</type>
|
|
- <hide>
|
|
-#if $generate_options() in ('qt_gui',)
|
|
- #if $qt_qss_theme()
|
|
- none
|
|
- #else
|
|
- part
|
|
- #end if
|
|
-#else
|
|
- all
|
|
-#end if
|
|
-</hide>
|
|
- </param>
|
|
- <param>
|
|
- <name>Thread-safe setters</name>
|
|
- <key>thread_safe_setters</key>
|
|
- <value></value>
|
|
- <type>enum</type>
|
|
- <hide>part</hide>
|
|
- <option>
|
|
- <name>Off</name>
|
|
- <key></key>
|
|
- </option>
|
|
- <option>
|
|
- <name>On</name>
|
|
- <key>1</key>
|
|
- </option>
|
|
- <tab>Advanced</tab>
|
|
- </param>
|
|
- <param>
|
|
- <name>Run Command</name>
|
|
- <key>run_command</key>
|
|
- <value>{python} -u {filename}</value>
|
|
- <type>string</type>
|
|
- <hide>#if $generate_options().startswith('hb')
|
|
-all#slurp
|
|
-#else
|
|
-part#slurp
|
|
-#end if</hide>
|
|
- <tab>Advanced</tab>
|
|
- </param>
|
|
- <param>
|
|
- <name>Hier Block Source Path</name>
|
|
- <key>hier_block_src_path</key>
|
|
- <value>.:</value>
|
|
- <type>string</type>
|
|
- <hide>part</hide>
|
|
- <tab>Advanced</tab>
|
|
- </param>
|
|
- <check>not $window_size or len($window_size) == 2</check>
|
|
- <check>not $window_size or 300 <= $(window_size)[0] <= 4096</check>
|
|
- <check>not $window_size or 300 <= $(window_size)[1] <= 4096</check>
|
|
- <check>len($placement) == 4 or len($placement) == 2</check>
|
|
- <check>all(i >= 0 for i in $(placement))</check>
|
|
- <doc>
|
|
-The options block sets special parameters for the flow graph. \
|
|
-Only one option block is allowed per flow graph.
|
|
-
|
|
-Title, author, and description parameters are for identification purposes.
|
|
-
|
|
-The window size controls the dimensions of the flow graph editor. \
|
|
-The window size (width, height) must be between (300, 300) and (4096, 4096).
|
|
-
|
|
-The generate options controls the type of code generated. \
|
|
-Non-graphical flow graphs should avoid using graphical sinks or graphical variable controls.
|
|
-
|
|
-In a graphical application, \
|
|
-run can be controlled by a variable to start and stop the flowgraph at runtime.
|
|
-
|
|
-The id of this block determines the name of the generated file and the name of the class. \
|
|
-For example, an id of my_block will generate the file my_block.py and class my_block(gr....
|
|
-
|
|
-The category parameter determines the placement of the block in the block selection window. \
|
|
-The category only applies when creating hier blocks. \
|
|
-To put hier blocks into the root category, enter / for the category.
|
|
-
|
|
-The Max Number of Output is the maximum number of output items allowed for any block \
|
|
-in the flowgraph; to disable this set the max_nouts equal to 0.\
|
|
-Use this to adjust the maximum latency a flowgraph can exhibit.
|
|
- </doc>
|
|
-</block>
|
|
--- /dev/null
|
|
+++ b/grc/blocks/options.xml
|
|
@@ -0,0 +1,294 @@
|
|
+<?xml version="1.0"?>
|
|
+<!--
|
|
+###################################################
|
|
+##Options Block:
|
|
+## options for window size,
|
|
+## and flow graph building.
|
|
+###################################################
|
|
+ -->
|
|
+<block>
|
|
+ <name>Options</name>
|
|
+ <key>options</key>
|
|
+ <import>from gnuradio import gr</import>
|
|
+ <import>from gnuradio.filter import firdes</import>
|
|
+ <import>#if $generate_options() == 'wx_gui'
|
|
+from grc_gnuradio import wxgui as grc_wxgui
|
|
+import wx
|
|
+#end if
|
|
+#if $generate_options() == 'qt_gui'
|
|
+from PyQt5 import Qt
|
|
+import sys
|
|
+#end if
|
|
+#if $generate_options() == 'bokeh_gui'
|
|
+import time
|
|
+import signal
|
|
+import functools
|
|
+from bokeh.client import push_session
|
|
+from bokeh.plotting import curdoc
|
|
+#end if
|
|
+#if not $generate_options().startswith('hb')
|
|
+from optparse import OptionParser
|
|
+from gnuradio.eng_option import eng_option
|
|
+from gnuradio import eng_notation
|
|
+#end if</import>
|
|
+ <make></make>
|
|
+ <callback>if $run: self.start()
|
|
+else: self.stop(); self.wait()</callback>
|
|
+ <param>
|
|
+ <name>Title</name>
|
|
+ <key>title</key>
|
|
+ <value></value>
|
|
+ <type>string</type>
|
|
+ <hide>#if $title() then 'none' else 'part'#</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Author</name>
|
|
+ <key>author</key>
|
|
+ <value></value>
|
|
+ <type>string</type>
|
|
+ <hide>#if $author() then 'none' else 'part'#</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Description</name>
|
|
+ <key>description</key>
|
|
+ <value></value>
|
|
+ <type>string</type>
|
|
+ <hide>#if $description() then 'none' else 'part'#</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Canvas Size</name>
|
|
+ <key>window_size</key>
|
|
+ <value></value>
|
|
+ <type>int_vector</type>
|
|
+ <hide>part</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Generate Options</name>
|
|
+ <key>generate_options</key>
|
|
+ <value>qt_gui</value>
|
|
+ <type>enum</type>
|
|
+ <option>
|
|
+ <name>Bokeh GUI</name>
|
|
+ <key>bokeh_gui</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>QT GUI</name>
|
|
+ <key>qt_gui</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>WX GUI</name>
|
|
+ <key>wx_gui</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>No GUI</name>
|
|
+ <key>no_gui</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Hier Block</name>
|
|
+ <key>hb</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Hier Block (QT GUI)</name>
|
|
+ <key>hb_qt_gui</key>
|
|
+ </option>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Category</name>
|
|
+ <key>category</key>
|
|
+ <value>[GRC Hier Blocks]</value>
|
|
+ <type>string</type>
|
|
+ <hide>#if $generate_options().startswith('hb') then 'none' else 'all'#</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Run Options</name>
|
|
+ <key>run_options</key>
|
|
+ <value>prompt</value>
|
|
+ <type>enum</type>
|
|
+ <hide>#if $generate_options() == 'no_gui' then 'none' else 'all'#</hide>
|
|
+ <option>
|
|
+ <name>Run to Completion</name>
|
|
+ <key>run</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Prompt for Exit</name>
|
|
+ <key>prompt</key>
|
|
+ </option>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Widget Placement</name>
|
|
+ <key>placement</key>
|
|
+ <value>(0,0)</value>
|
|
+ <type>int_vector</type>
|
|
+ <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Sizing Mode</name>
|
|
+ <key>sizing_mode</key>
|
|
+ <value>fixed</value>
|
|
+ <type>enum</type>
|
|
+ <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide>
|
|
+ <option>
|
|
+ <name>Fixed</name>
|
|
+ <key>fixed</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Stretch Both</name>
|
|
+ <key>stretch_both</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Scale Width</name>
|
|
+ <key>scale_width</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Scale Height</name>
|
|
+ <key>scale_height</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Scale Both</name>
|
|
+ <key>scale_both</key>
|
|
+ </option>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Run</name>
|
|
+ <key>run</key>
|
|
+ <value>True</value>
|
|
+ <type>bool</type>
|
|
+ <hide>
|
|
+#if $generate_options() in ('qt_gui', 'wx_gui', 'bokeh_gui')
|
|
+ #if $run()
|
|
+ part
|
|
+ #else
|
|
+ none
|
|
+ #end if
|
|
+#else
|
|
+ all
|
|
+#end if
|
|
+ </hide>
|
|
+ <option>
|
|
+ <name>Autostart</name>
|
|
+ <key>True</key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>Off</name>
|
|
+ <key>False</key>
|
|
+ </option>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Max Number of Output</name>
|
|
+ <key>max_nouts</key>
|
|
+ <value>0</value>
|
|
+ <type>int</type>
|
|
+ <hide>#if $generate_options().startswith('hb')
|
|
+all#slurp
|
|
+#elif $max_nouts()
|
|
+none#slurp
|
|
+#else
|
|
+part#slurp
|
|
+#end if</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Realtime Scheduling</name>
|
|
+ <key>realtime_scheduling</key>
|
|
+ <value></value>
|
|
+ <type>enum</type>
|
|
+ <hide>#if $generate_options().startswith('hb')
|
|
+all#slurp
|
|
+#elif $realtime_scheduling()
|
|
+none#slurp
|
|
+#else
|
|
+part#slurp
|
|
+#end if</hide>
|
|
+ <option>
|
|
+ <name>Off</name>
|
|
+ <key></key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>On</name>
|
|
+ <key>1</key>
|
|
+ </option>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>QSS Theme</name>
|
|
+ <key>qt_qss_theme</key>
|
|
+ <value></value>
|
|
+ <type>file_open</type>
|
|
+ <hide>
|
|
+#if $generate_options() in ('qt_gui',)
|
|
+ #if $qt_qss_theme()
|
|
+ none
|
|
+ #else
|
|
+ part
|
|
+ #end if
|
|
+#else
|
|
+ all
|
|
+#end if
|
|
+</hide>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Thread-safe setters</name>
|
|
+ <key>thread_safe_setters</key>
|
|
+ <value></value>
|
|
+ <type>enum</type>
|
|
+ <hide>part</hide>
|
|
+ <option>
|
|
+ <name>Off</name>
|
|
+ <key></key>
|
|
+ </option>
|
|
+ <option>
|
|
+ <name>On</name>
|
|
+ <key>1</key>
|
|
+ </option>
|
|
+ <tab>Advanced</tab>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Run Command</name>
|
|
+ <key>run_command</key>
|
|
+ <value>{python} -u {filename}</value>
|
|
+ <type>string</type>
|
|
+ <hide>#if $generate_options().startswith('hb')
|
|
+all#slurp
|
|
+#else
|
|
+part#slurp
|
|
+#end if</hide>
|
|
+ <tab>Advanced</tab>
|
|
+ </param>
|
|
+ <param>
|
|
+ <name>Hier Block Source Path</name>
|
|
+ <key>hier_block_src_path</key>
|
|
+ <value>.:</value>
|
|
+ <type>string</type>
|
|
+ <hide>part</hide>
|
|
+ <tab>Advanced</tab>
|
|
+ </param>
|
|
+ <check>not $window_size or len($window_size) == 2</check>
|
|
+ <check>not $window_size or 300 <= $(window_size)[0] <= 4096</check>
|
|
+ <check>not $window_size or 300 <= $(window_size)[1] <= 4096</check>
|
|
+ <check>len($placement) == 4 or len($placement) == 2</check>
|
|
+ <check>all(i >= 0 for i in $(placement))</check>
|
|
+ <doc>
|
|
+The options block sets special parameters for the flow graph. \
|
|
+Only one option block is allowed per flow graph.
|
|
+
|
|
+Title, author, and description parameters are for identification purposes.
|
|
+
|
|
+The window size controls the dimensions of the flow graph editor. \
|
|
+The window size (width, height) must be between (300, 300) and (4096, 4096).
|
|
+
|
|
+The generate options controls the type of code generated. \
|
|
+Non-graphical flow graphs should avoid using graphical sinks or graphical variable controls.
|
|
+
|
|
+In a graphical application, \
|
|
+run can be controlled by a variable to start and stop the flowgraph at runtime.
|
|
+
|
|
+The id of this block determines the name of the generated file and the name of the class. \
|
|
+For example, an id of my_block will generate the file my_block.py and class my_block(gr....
|
|
+
|
|
+The category parameter determines the placement of the block in the block selection window. \
|
|
+The category only applies when creating hier blocks. \
|
|
+To put hier blocks into the root category, enter / for the category.
|
|
+
|
|
+The Max Number of Output is the maximum number of output items allowed for any block \
|
|
+in the flowgraph; to disable this set the max_nouts equal to 0.\
|
|
+Use this to adjust the maximum latency a flowgraph can exhibit.
|
|
+ </doc>
|
|
+</block>
|
|
From d796f30a241ed29831d597ee27df01556a80d2f1 Mon Sep 17 00:00:00 2001
|
|
From: Sebastian Koslowski <koslowski@kit.edu>
|
|
Date: Tue, 30 Aug 2016 17:52:09 +0200
|
|
Subject: [PATCH 14/22] qtgui: replace templated xml files with search and
|
|
replace for qt4
|
|
|
|
---
|
|
gr-qtgui/grc/CMakeLists.txt | 32 +++++++++++++++++-----
|
|
...ber_sink_b.xml.cmakein => qtgui_ber_sink_b.xml} | 2 +-
|
|
...block_tree.xml.cmakein => qtgui_block_tree.xml} | 0
|
|
...i_check_box.xml.cmakein => qtgui_check_box.xml} | 2 +-
|
|
...qtgui_chooser.xml.cmakein => qtgui_chooser.xml} | 4 +--
|
|
...t_sink_x.xml.cmakein => qtgui_const_sink_x.xml} | 2 +-
|
|
..._box_msg.xml.cmakein => qtgui_edit_box_msg.xml} | 2 +-
|
|
.../{qtgui_entry.xml.cmakein => qtgui_entry.xml} | 2 +-
|
|
...eq_sink_x.xml.cmakein => qtgui_freq_sink_x.xml} | 2 +-
|
|
...nk_x.xml.cmakein => qtgui_histogram_sink_x.xml} | 2 +-
|
|
.../{qtgui_label.xml.cmakein => qtgui_label.xml} | 2 +-
|
|
...mber_sink.xml.cmakein => qtgui_number_sink.xml} | 2 +-
|
|
...sh_button.xml.cmakein => qtgui_push_button.xml} | 2 +-
|
|
.../{qtgui_range.xml.cmakein => qtgui_range.xml} | 0
|
|
.../{qtgui_sink_x.xml.cmakein => qtgui_sink_x.xml} | 2 +-
|
|
...tab_widget.xml.cmakein => qtgui_tab_widget.xml} | 2 +-
|
|
...aster_x.xml.cmakein => qtgui_time_raster_x.xml} | 2 +-
|
|
...me_sink_x.xml.cmakein => qtgui_time_sink_x.xml} | 2 +-
|
|
..._sink_f.xml.cmakein => qtgui_vector_sink_f.xml} | 2 +-
|
|
...nk_x.xml.cmakein => qtgui_waterfall_sink_x.xml} | 2 +-
|
|
20 files changed, 43 insertions(+), 25 deletions(-)
|
|
rename gr-qtgui/grc/{qtgui_ber_sink_b.xml.cmakein => qtgui_ber_sink_b.xml} (99%)
|
|
rename gr-qtgui/grc/{qtgui_block_tree.xml.cmakein => qtgui_block_tree.xml} (100%)
|
|
rename gr-qtgui/grc/{qtgui_check_box.xml.cmakein => qtgui_check_box.xml} (97%)
|
|
rename gr-qtgui/grc/{qtgui_chooser.xml.cmakein => qtgui_chooser.xml} (98%)
|
|
rename gr-qtgui/grc/{qtgui_const_sink_x.xml.cmakein => qtgui_const_sink_x.xml} (99%)
|
|
rename gr-qtgui/grc/{qtgui_edit_box_msg.xml.cmakein => qtgui_edit_box_msg.xml} (98%)
|
|
rename gr-qtgui/grc/{qtgui_entry.xml.cmakein => qtgui_entry.xml} (97%)
|
|
rename gr-qtgui/grc/{qtgui_freq_sink_x.xml.cmakein => qtgui_freq_sink_x.xml} (99%)
|
|
rename gr-qtgui/grc/{qtgui_histogram_sink_x.xml.cmakein => qtgui_histogram_sink_x.xml} (99%)
|
|
rename gr-qtgui/grc/{qtgui_label.xml.cmakein => qtgui_label.xml} (97%)
|
|
rename gr-qtgui/grc/{qtgui_number_sink.xml.cmakein => qtgui_number_sink.xml} (99%)
|
|
rename gr-qtgui/grc/{qtgui_push_button.xml.cmakein => qtgui_push_button.xml} (97%)
|
|
rename gr-qtgui/grc/{qtgui_range.xml.cmakein => qtgui_range.xml} (100%)
|
|
rename gr-qtgui/grc/{qtgui_sink_x.xml.cmakein => qtgui_sink_x.xml} (98%)
|
|
rename gr-qtgui/grc/{qtgui_tab_widget.xml.cmakein => qtgui_tab_widget.xml} (99%)
|
|
rename gr-qtgui/grc/{qtgui_time_raster_x.xml.cmakein => qtgui_time_raster_x.xml} (99%)
|
|
rename gr-qtgui/grc/{qtgui_time_sink_x.xml.cmakein => qtgui_time_sink_x.xml} (99%)
|
|
rename gr-qtgui/grc/{qtgui_vector_sink_f.xml.cmakein => qtgui_vector_sink_f.xml} (99%)
|
|
rename gr-qtgui/grc/{qtgui_waterfall_sink_x.xml.cmakein => qtgui_waterfall_sink_x.xml} (99%)
|
|
|
|
diff --git a/gr-qtgui/grc/CMakeLists.txt b/gr-qtgui/grc/CMakeLists.txt
|
|
index d01bcc52c4..74e6958639 100644
|
|
--- a/gr-qtgui/grc/CMakeLists.txt
|
|
+++ b/gr-qtgui/grc/CMakeLists.txt
|
|
@@ -18,12 +18,30 @@
|
|
# Boston, MA 02110-1301, USA.
|
|
|
|
########################################################################
|
|
-file(GLOB xml_cmakein_files "*.xml.cmakein")
|
|
+file(GLOB xml_files "*.xml")
|
|
|
|
-foreach(xml_cmakein_file IN ITEMS ${xml_cmakein_files})
|
|
- get_filename_component(FILE_NAME ${xml_cmakein_file} NAME_WE)
|
|
- configure_file(${xml_cmakein_file} "${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.xml" @ONLY)
|
|
- set(xml_files ${xml_files} "${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.xml")
|
|
-endforeach(xml_cmakein_file)
|
|
+macro(REPLACE_IN_FILE _xml_block match replace)
|
|
+ set(xml_block_src "${CMAKE_CURRENT_SOURCE_DIR}/${_xml_block}")
|
|
+ set(xml_block "${CMAKE_CURRENT_BINARY_DIR}/${_xml_block}")
|
|
|
|
-install(FILES ${xml_files} DESTINATION ${GRC_BLOCKS_DIR} COMPONENT "qtgui_python")
|
|
+ list(REMOVE_ITEM xml_files "${xml_block_src}")
|
|
+ file(READ "${xml_block_src}" xml_block_src_text)
|
|
+ string(REPLACE "${match}" "${replace}"
|
|
+ xml_block_text "${xml_block_src_text}")
|
|
+ file(WRITE "${xml_block}" "${xml_block_text}")
|
|
+
|
|
+ list(APPEND generated_xml_files "${xml_block}")
|
|
+endmacro()
|
|
+
|
|
+
|
|
+if(DESIRED_QT_VERSION EQUAL 4)
|
|
+ foreach(xml_block_src ${xml_files})
|
|
+ get_filename_component(xml_block "${xml_block_src}" NAME)
|
|
+ REPLACE_IN_FILE("${xml_block}" "PyQt5" "PyQt4")
|
|
+ endforeach()
|
|
+endif()
|
|
+
|
|
+install(
|
|
+ FILES ${xml_files} ${generated_xml_files}
|
|
+ DESTINATION "${GRC_BLOCKS_DIR}"
|
|
+)
|
|
diff --git a/gr-qtgui/grc/qtgui_ber_sink_b.xml.cmakein b/gr-qtgui/grc/qtgui_ber_sink_b.xml
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_ber_sink_b.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_ber_sink_b.xml
|
|
index 91a87ce595..05a36dfbc0 100644
|
|
--- a/gr-qtgui/grc/qtgui_ber_sink_b.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_ber_sink_b.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Bercurve Sink</name>
|
|
<key>qtgui_bercurve_sink</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<import>import numpy</import>
|
|
diff --git a/gr-qtgui/grc/qtgui_block_tree.xml.cmakein b/gr-qtgui/grc/qtgui_block_tree.xml
|
|
similarity index 100%
|
|
rename from gr-qtgui/grc/qtgui_block_tree.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_block_tree.xml
|
|
diff --git a/gr-qtgui/grc/qtgui_check_box.xml.cmakein b/gr-qtgui/grc/qtgui_check_box.xml
|
|
similarity index 97%
|
|
rename from gr-qtgui/grc/qtgui_check_box.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_check_box.xml
|
|
index 9edacb24d8..ccee59dd92 100644
|
|
--- a/gr-qtgui/grc/qtgui_check_box.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_check_box.xml
|
|
@@ -8,7 +8,7 @@
|
|
<block>
|
|
<name>QT GUI Check Box</name>
|
|
<key>variable_qtgui_check_box</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = '_%s_check_box'%$id
|
|
#if not $label()
|
|
diff --git a/gr-qtgui/grc/qtgui_chooser.xml.cmakein b/gr-qtgui/grc/qtgui_chooser.xml
|
|
similarity index 98%
|
|
rename from gr-qtgui/grc/qtgui_chooser.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_chooser.xml
|
|
index 40c782bede..f79bb8ccb3 100644
|
|
--- a/gr-qtgui/grc/qtgui_chooser.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_chooser.xml
|
|
@@ -8,8 +8,8 @@
|
|
<block>
|
|
<name>QT GUI Chooser</name>
|
|
<key>variable_qtgui_chooser</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@.QtCore import QObject, pyqtSlot</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
+ <import>from PyQt5.QtCore import QObject, pyqtSlot</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#slurp
|
|
#set $all_options = [$option0, $option1, $option2, $option3, $option4][:int($num_opts())]
|
|
diff --git a/gr-qtgui/grc/qtgui_const_sink_x.xml.cmakein b/gr-qtgui/grc/qtgui_const_sink_x.xml
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_const_sink_x.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_const_sink_x.xml
|
|
index 6fa725acb1..10f82cce82 100644
|
|
--- a/gr-qtgui/grc/qtgui_const_sink_x.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_const_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Constellation Sink</name>
|
|
<key>qtgui_const_sink_x</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_edit_box_msg.xml.cmakein b/gr-qtgui/grc/qtgui_edit_box_msg.xml
|
|
similarity index 98%
|
|
rename from gr-qtgui/grc/qtgui_edit_box_msg.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_edit_box_msg.xml
|
|
index 75ff93349f..d77a4b3e1b 100644
|
|
--- a/gr-qtgui/grc/qtgui_edit_box_msg.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_edit_box_msg.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Message Edit Box</name>
|
|
<key>qtgui_edit_box_msg</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_entry.xml.cmakein b/gr-qtgui/grc/qtgui_entry.xml
|
|
similarity index 97%
|
|
rename from gr-qtgui/grc/qtgui_entry.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_entry.xml
|
|
index da61ee723a..fc0f4089d1 100644
|
|
--- a/gr-qtgui/grc/qtgui_entry.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_entry.xml
|
|
@@ -8,7 +8,7 @@
|
|
<block>
|
|
<name>QT GUI Entry</name>
|
|
<key>variable_qtgui_entry</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import eng_notation</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = 'self._%s_tool_bar'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_freq_sink_x.xml.cmakein b/gr-qtgui/grc/qtgui_freq_sink_x.xml
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_freq_sink_x.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_freq_sink_x.xml
|
|
index aaf0d75271..ed39db7781 100644
|
|
--- a/gr-qtgui/grc/qtgui_freq_sink_x.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_freq_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Frequency Sink</name>
|
|
<key>qtgui_freq_sink_x</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
diff --git a/gr-qtgui/grc/qtgui_histogram_sink_x.xml.cmakein b/gr-qtgui/grc/qtgui_histogram_sink_x.xml
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_histogram_sink_x.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_histogram_sink_x.xml
|
|
index d04a44da13..9e3dcb104f 100644
|
|
--- a/gr-qtgui/grc/qtgui_histogram_sink_x.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_histogram_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Histogram Sink</name>
|
|
<key>qtgui_histogram_sink_x</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_label.xml.cmakein b/gr-qtgui/grc/qtgui_label.xml
|
|
similarity index 97%
|
|
rename from gr-qtgui/grc/qtgui_label.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_label.xml
|
|
index c546e09dcc..946cee36ab 100644
|
|
--- a/gr-qtgui/grc/qtgui_label.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_label.xml
|
|
@@ -9,7 +9,7 @@
|
|
<block>
|
|
<name>QT GUI Label</name>
|
|
<key>variable_qtgui_label</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import eng_notation</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = 'self._%s_tool_bar'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_number_sink.xml.cmakein b/gr-qtgui/grc/qtgui_number_sink.xml
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_number_sink.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_number_sink.xml
|
|
index d4b4c5808f..06837493c3 100644
|
|
--- a/gr-qtgui/grc/qtgui_number_sink.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_number_sink.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Number Sink</name>
|
|
<key>qtgui_number_sink</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_push_button.xml.cmakein b/gr-qtgui/grc/qtgui_push_button.xml
|
|
similarity index 97%
|
|
rename from gr-qtgui/grc/qtgui_push_button.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_push_button.xml
|
|
index d99f230acf..49c2e9d6f0 100644
|
|
--- a/gr-qtgui/grc/qtgui_push_button.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_push_button.xml
|
|
@@ -8,7 +8,7 @@
|
|
<block>
|
|
<name>QT GUI Push Button</name>
|
|
<key>variable_qtgui_push_button</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<var_make>self.$(id) = $(id) = $value</var_make>
|
|
<make>#set $win = '_%s_push_button'%$id
|
|
#if not $label()
|
|
diff --git a/gr-qtgui/grc/qtgui_range.xml.cmakein b/gr-qtgui/grc/qtgui_range.xml
|
|
similarity index 100%
|
|
rename from gr-qtgui/grc/qtgui_range.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_range.xml
|
|
diff --git a/gr-qtgui/grc/qtgui_sink_x.xml.cmakein b/gr-qtgui/grc/qtgui_sink_x.xml
|
|
similarity index 98%
|
|
rename from gr-qtgui/grc/qtgui_sink_x.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_sink_x.xml
|
|
index 1c75921a75..a9bc469cd2 100644
|
|
--- a/gr-qtgui/grc/qtgui_sink_x.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Sink</name>
|
|
<key>qtgui_sink_x</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
diff --git a/gr-qtgui/grc/qtgui_tab_widget.xml.cmakein b/gr-qtgui/grc/qtgui_tab_widget.xml
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_tab_widget.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_tab_widget.xml
|
|
index f5a1a73cdc..805542cc8b 100644
|
|
--- a/gr-qtgui/grc/qtgui_tab_widget.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_tab_widget.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Tab Widget</name>
|
|
<key>qtgui_tab_widget</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<make>#set $win = 'self.%s'%$id
|
|
Qt.QTabWidget()
|
|
#set $all_labels = [$label0, $label1, $label2, $label3, $label4,
|
|
diff --git a/gr-qtgui/grc/qtgui_time_raster_x.xml.cmakein b/gr-qtgui/grc/qtgui_time_raster_x.xml
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_time_raster_x.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_time_raster_x.xml
|
|
index 94b7ef136a..d458f67eb9 100644
|
|
--- a/gr-qtgui/grc/qtgui_time_raster_x.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_time_raster_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Time Raster Sink</name>
|
|
<key>qtgui_time_raster_sink_x</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_time_sink_x.xml.cmakein b/gr-qtgui/grc/qtgui_time_sink_x.xml
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_time_sink_x.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_time_sink_x.xml
|
|
index d239917907..d4347950ea 100644
|
|
--- a/gr-qtgui/grc/qtgui_time_sink_x.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_time_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Time Sink</name>
|
|
<key>qtgui_time_sink_x</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
diff --git a/gr-qtgui/grc/qtgui_vector_sink_f.xml.cmakein b/gr-qtgui/grc/qtgui_vector_sink_f.xml
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_vector_sink_f.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_vector_sink_f.xml
|
|
index 8b928eb7ea..0f456323bf 100644
|
|
--- a/gr-qtgui/grc/qtgui_vector_sink_f.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_vector_sink_f.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Vector Sink</name>
|
|
<key>qtgui_vector_sink_f</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>import sip</import>
|
|
<make>#set $win = 'self._%s_win'%$id
|
|
diff --git a/gr-qtgui/grc/qtgui_waterfall_sink_x.xml.cmakein b/gr-qtgui/grc/qtgui_waterfall_sink_x.xml
|
|
similarity index 99%
|
|
rename from gr-qtgui/grc/qtgui_waterfall_sink_x.xml.cmakein
|
|
rename to gr-qtgui/grc/qtgui_waterfall_sink_x.xml
|
|
index d198ca084a..a684492246 100644
|
|
--- a/gr-qtgui/grc/qtgui_waterfall_sink_x.xml.cmakein
|
|
+++ b/gr-qtgui/grc/qtgui_waterfall_sink_x.xml
|
|
@@ -7,7 +7,7 @@
|
|
<block>
|
|
<name>QT GUI Waterfall Sink</name>
|
|
<key>qtgui_waterfall_sink_x</key>
|
|
- <import>from PyQt@DESIRED_QT_VERSION@ import Qt</import>
|
|
+ <import>from PyQt5 import Qt</import>
|
|
<import>from gnuradio import qtgui</import>
|
|
<import>from gnuradio.filter import firdes</import>
|
|
<import>import sip</import>
|
|
--
|
|
2.11.0
|
|
|
|
From 1bd3700c2333b86e5374c1bb753270b50e0ecc2c Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Marcus=20M=C3=BCller?= <marcus@hostalia.de>
|
|
Date: Wed, 14 Sep 2016 16:48:16 -0600
|
|
Subject: [PATCH 15/22] fixed the FindQwt to prefer pkgconfig for qt5-qwt
|
|
|
|
---
|
|
cmake/Modules/FindQwt.cmake | 16 +++++++++++++++-
|
|
1 file changed, 15 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/cmake/Modules/FindQwt.cmake b/cmake/Modules/FindQwt.cmake
|
|
index 2cffbe66f4..971578fd23 100644
|
|
--- a/cmake/Modules/FindQwt.cmake
|
|
+++ b/cmake/Modules/FindQwt.cmake
|
|
@@ -5,6 +5,14 @@
|
|
# qwt_global.h holds a string with the QWT version;
|
|
# test to make sure it's at least 5.2
|
|
|
|
+if (${DESIRED_QT_VERSION} MATCHES 5)
|
|
+ set(QWT_QT_VERSION qt5)
|
|
+ message(STATUS "Looking for Qt5Qwt6")
|
|
+ pkg_check_modules(QWT Qt5Qwt6)
|
|
+ message(STATUS "found ${QWT_FOUND}")
|
|
+else()
|
|
+ set(QWT_QT_VERSION qt4)
|
|
+
|
|
find_path(QWT_INCLUDE_DIRS
|
|
NAMES qwt_global.h
|
|
HINTS
|
|
@@ -36,9 +44,15 @@ find_library (QWT_LIBRARIES
|
|
/usr/local/lib/qwt.framework
|
|
)
|
|
|
|
+endif()
|
|
set(QWT_FOUND FALSE)
|
|
if(QWT_INCLUDE_DIRS)
|
|
- file(STRINGS "${QWT_INCLUDE_DIRS}/qwt_global.h"
|
|
+ find_path(QWT_GLOBAL_DIR
|
|
+ NAMES qwt_global.h
|
|
+ HINTS
|
|
+ ${QWT_INCLUDE_DIRS}
|
|
+ )
|
|
+ file(STRINGS "${QWT_GLOBAL_DIR}/qwt_global.h"
|
|
QWT_STRING_VERSION REGEX "QWT_VERSION_STR")
|
|
set(QWT_WRONG_VERSION True)
|
|
set(QWT_VERSION "No Version")
|
|
--
|
|
2.11.0
|
|
|
|
From 0eaf5c46e85d34ce4c527315141fc5c8a9381acd Mon Sep 17 00:00:00 2001
|
|
From: Johnathan Corgan <johnathan@corganlabs.com>
|
|
Date: Tue, 20 Sep 2016 06:44:31 -0700
|
|
Subject: [PATCH 16/22] Revert "fixed the FindQwt to prefer pkgconfig for
|
|
qt5-qwt"
|
|
|
|
This reverts commit 222fd4391a39873b5e114f3d30d47608a658b090.
|
|
---
|
|
cmake/Modules/FindQwt.cmake | 12 ++----------
|
|
1 file changed, 2 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/cmake/Modules/FindQwt.cmake b/cmake/Modules/FindQwt.cmake
|
|
index 971578fd23..2b83fbf2a4 100644
|
|
--- a/cmake/Modules/FindQwt.cmake
|
|
+++ b/cmake/Modules/FindQwt.cmake
|
|
@@ -7,11 +7,9 @@
|
|
|
|
if (${DESIRED_QT_VERSION} MATCHES 5)
|
|
set(QWT_QT_VERSION qt5)
|
|
- message(STATUS "Looking for Qt5Qwt6")
|
|
- pkg_check_modules(QWT Qt5Qwt6)
|
|
- message(STATUS "found ${QWT_FOUND}")
|
|
else()
|
|
set(QWT_QT_VERSION qt4)
|
|
+endif()
|
|
|
|
find_path(QWT_INCLUDE_DIRS
|
|
NAMES qwt_global.h
|
|
@@ -44,15 +42,9 @@ find_library (QWT_LIBRARIES
|
|
/usr/local/lib/qwt.framework
|
|
)
|
|
|
|
-endif()
|
|
set(QWT_FOUND FALSE)
|
|
if(QWT_INCLUDE_DIRS)
|
|
- find_path(QWT_GLOBAL_DIR
|
|
- NAMES qwt_global.h
|
|
- HINTS
|
|
- ${QWT_INCLUDE_DIRS}
|
|
- )
|
|
- file(STRINGS "${QWT_GLOBAL_DIR}/qwt_global.h"
|
|
+ file(STRINGS "${QWT_INCLUDE_DIRS}/qwt_global.h"
|
|
QWT_STRING_VERSION REGEX "QWT_VERSION_STR")
|
|
set(QWT_WRONG_VERSION True)
|
|
set(QWT_VERSION "No Version")
|
|
--
|
|
2.11.0
|
|
|
|
From ae10f7b4f1ec25fc2e800d42a061603a08c0283b Mon Sep 17 00:00:00 2001
|
|
From: Bastian Bloessl <bloessl@ccs-labs.org>
|
|
Date: Fri, 11 Nov 2016 13:27:55 +0100
|
|
Subject: [PATCH 17/22] qtgui: fix stylesheet for qt5
|
|
|
|
---
|
|
gr-qtgui/python/qtgui/util.py | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/gr-qtgui/python/qtgui/util.py b/gr-qtgui/python/qtgui/util.py
|
|
index d2e9495ac6..fffc482615 100644
|
|
--- a/gr-qtgui/python/qtgui/util.py
|
|
+++ b/gr-qtgui/python/qtgui/util.py
|
|
@@ -25,7 +25,7 @@ from PyQt4 import Qt, QtCore, QtGui
|
|
from gnuradio import gr
|
|
|
|
def check_set_qss():
|
|
- app = QtGui.qApp
|
|
+ app = QtWidgets.qApp
|
|
qssfile = gr.prefs().get_string("qtgui","qss","")
|
|
if(len(qssfile)>0):
|
|
try:
|
|
--
|
|
2.11.0
|
|
|
|
From 2cf36532281caf6cf7ee54d92b3f22537819e012 Mon Sep 17 00:00:00 2001
|
|
From: "A. Maitland Bottoms" <bottoms@debian.org>
|
|
Date: Sun, 25 Feb 2018 13:25:55 -0500
|
|
Subject: [PATCH 19/22] qtgui fixed apps for Qt5 compatibility
|
|
|
|
---
|
|
gr-qtgui/apps/gr_constellation_plot | 12 +--
|
|
gr-qtgui/apps/gr_psd_plot_b | 7 +-
|
|
gr-qtgui/apps/gr_psd_plot_c | 7 +-
|
|
gr-qtgui/apps/gr_psd_plot_f | 7 +-
|
|
gr-qtgui/apps/gr_psd_plot_i | 7 +-
|
|
gr-qtgui/apps/gr_psd_plot_s | 7 +-
|
|
gr-qtgui/apps/gr_spectrogram_plot | 6 +-
|
|
gr-qtgui/apps/gr_spectrogram_plot_b | 7 +-
|
|
gr-qtgui/apps/gr_spectrogram_plot_c | 7 +-
|
|
gr-qtgui/apps/gr_spectrogram_plot_f | 7 +-
|
|
gr-qtgui/apps/gr_spectrogram_plot_i | 7 +-
|
|
gr-qtgui/apps/gr_spectrogram_plot_s | 7 +-
|
|
gr-qtgui/apps/gr_time_plot_b | 7 +-
|
|
gr-qtgui/apps/gr_time_plot_c | 7 +-
|
|
gr-qtgui/apps/gr_time_plot_f | 7 +-
|
|
gr-qtgui/apps/gr_time_plot_i | 7 +-
|
|
gr-qtgui/apps/gr_time_plot_s | 7 +-
|
|
gr-qtgui/apps/gr_time_raster_b | 7 +-
|
|
gr-qtgui/apps/gr_time_raster_f | 7 +-
|
|
gr-qtgui/apps/plot_base.py | 8 +-
|
|
gr-qtgui/apps/plot_constellation_form.py | 16 +--
|
|
gr-qtgui/apps/plot_form.py | 160 +++++++++++++---------------
|
|
gr-qtgui/apps/plot_psd_base.py | 12 +--
|
|
gr-qtgui/apps/plot_psd_form.py | 34 +++---
|
|
gr-qtgui/apps/plot_spectrogram_base.py | 12 +--
|
|
gr-qtgui/apps/plot_spectrogram_form.py | 67 ++++++------
|
|
gr-qtgui/apps/plot_time_base.py | 12 +--
|
|
gr-qtgui/apps/plot_time_form.py | 21 ++--
|
|
gr-qtgui/apps/plot_time_raster_base.py | 14 +--
|
|
gr-qtgui/apps/plot_time_raster_form.py | 60 +++++------
|
|
gr-qtgui/apps/qt_digital.py | 58 +++++------
|
|
gr-qtgui/apps/qt_digital_window.py | 148 +++++++++++++-------------
|
|
gr-qtgui/apps/uhd_display.py | 58 +++++------
|
|
gr-qtgui/apps/usrp_display_qtgui.py | 172 +++++++++++++++----------------
|
|
34 files changed, 473 insertions(+), 516 deletions(-)
|
|
|
|
diff --git a/gr-qtgui/apps/gr_constellation_plot b/gr-qtgui/apps/gr_constellation_plot
|
|
index 528bb97e5a..80d02d31ca 100755
|
|
--- a/gr-qtgui/apps/gr_constellation_plot
|
|
+++ b/gr-qtgui/apps/gr_constellation_plot
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -28,16 +28,16 @@ import os, 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."
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
import scipy
|
|
except ImportError:
|
|
- print "Error: Scipy required (www.scipy.org)."
|
|
+ sys.stderr.write("Error: Scipy required (www.scipy.org).\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -66,7 +66,7 @@ class my_top_block(gr.top_block):
|
|
self._y_value = 2
|
|
self.gui_y_axis = None
|
|
|
|
- self.qapp = QtGui.QApplication(sys.argv)
|
|
+ self.qapp = QtWidgets.QApplication(sys.argv)
|
|
|
|
self.skip = blocks.skiphead(gr.sizeof_gr_complex, self._start)
|
|
self.gui_snk = qtgui.const_sink_c(self._nsamps, "", self._nsigs)
|
|
@@ -98,7 +98,7 @@ class my_top_block(gr.top_block):
|
|
|
|
# Get Python Qt references
|
|
pyQt = self.gui_snk.pyqwidget()
|
|
- self.pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
|
|
+ self.pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget)
|
|
|
|
def get_gui(self):
|
|
return self.pyWin
|
|
diff --git a/gr-qtgui/apps/gr_psd_plot_b b/gr-qtgui/apps/gr_psd_plot_b
|
|
index 606311af48..70b9eabe38 100755
|
|
--- a/gr-qtgui/apps/gr_psd_plot_b
|
|
+++ b/gr-qtgui/apps/gr_psd_plot_b
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -31,10 +31,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class psd_plot_b(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_psd_plot_c b/gr-qtgui/apps/gr_psd_plot_c
|
|
index 6df9fae190..7d827ac995 100755
|
|
--- a/gr-qtgui/apps/gr_psd_plot_c
|
|
+++ b/gr-qtgui/apps/gr_psd_plot_c
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -32,10 +32,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class psd_plot_c(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_psd_plot_f b/gr-qtgui/apps/gr_psd_plot_f
|
|
index f07e3e8b50..abb66f013b 100755
|
|
--- a/gr-qtgui/apps/gr_psd_plot_f
|
|
+++ b/gr-qtgui/apps/gr_psd_plot_f
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -32,10 +32,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.sterr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class psd_plot_f(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_psd_plot_i b/gr-qtgui/apps/gr_psd_plot_i
|
|
index 1852345823..17d4970ec2 100755
|
|
--- a/gr-qtgui/apps/gr_psd_plot_i
|
|
+++ b/gr-qtgui/apps/gr_psd_plot_i
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -31,10 +31,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class psd_plot_i(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_psd_plot_s b/gr-qtgui/apps/gr_psd_plot_s
|
|
index c06076f1f9..5f99c70209 100755
|
|
--- a/gr-qtgui/apps/gr_psd_plot_s
|
|
+++ b/gr-qtgui/apps/gr_psd_plot_s
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -31,10 +31,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class psd_plot_s(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_spectrogram_plot b/gr-qtgui/apps/gr_spectrogram_plot
|
|
index db79f9dbad..5f5b8ba431 100755
|
|
--- a/gr-qtgui/apps/gr_spectrogram_plot
|
|
+++ b/gr-qtgui/apps/gr_spectrogram_plot
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -36,10 +36,10 @@ except ImportError:
|
|
|
|
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."
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class spectrogram_plot_c(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_spectrogram_plot_b b/gr-qtgui/apps/gr_spectrogram_plot_b
|
|
index 0d7a16ea6e..29feaa33f5 100755
|
|
--- a/gr-qtgui/apps/gr_spectrogram_plot_b
|
|
+++ b/gr-qtgui/apps/gr_spectrogram_plot_b
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -31,10 +31,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class spectrogram_plot_b(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_spectrogram_plot_c b/gr-qtgui/apps/gr_spectrogram_plot_c
|
|
index 52b0d4dff7..b5a7686da6 100755
|
|
--- a/gr-qtgui/apps/gr_spectrogram_plot_c
|
|
+++ b/gr-qtgui/apps/gr_spectrogram_plot_c
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -32,10 +32,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class spectrogram_plot_c(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_spectrogram_plot_f b/gr-qtgui/apps/gr_spectrogram_plot_f
|
|
index 6ea5afc4ef..26346945f1 100755
|
|
--- a/gr-qtgui/apps/gr_spectrogram_plot_f
|
|
+++ b/gr-qtgui/apps/gr_spectrogram_plot_f
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -32,10 +32,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class spectrogram_plot_f(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_spectrogram_plot_i b/gr-qtgui/apps/gr_spectrogram_plot_i
|
|
index 893df2a234..693d961d0d 100755
|
|
--- a/gr-qtgui/apps/gr_spectrogram_plot_i
|
|
+++ b/gr-qtgui/apps/gr_spectrogram_plot_i
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -31,10 +31,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class spectrogram_plot_i(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_spectrogram_plot_s b/gr-qtgui/apps/gr_spectrogram_plot_s
|
|
index 82a22f740d..270bacbcaf 100755
|
|
--- a/gr-qtgui/apps/gr_spectrogram_plot_s
|
|
+++ b/gr-qtgui/apps/gr_spectrogram_plot_s
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -31,10 +31,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class spectrogram_plot_s(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_time_plot_b b/gr-qtgui/apps/gr_time_plot_b
|
|
index d822557f1b..ae240561e6 100755
|
|
--- a/gr-qtgui/apps/gr_time_plot_b
|
|
+++ b/gr-qtgui/apps/gr_time_plot_b
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -30,10 +30,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class plot_time_b(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_time_plot_c b/gr-qtgui/apps/gr_time_plot_c
|
|
index 202e0f88f4..af184304d4 100755
|
|
--- a/gr-qtgui/apps/gr_time_plot_c
|
|
+++ b/gr-qtgui/apps/gr_time_plot_c
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -31,10 +31,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class plot_time_c(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_time_plot_f b/gr-qtgui/apps/gr_time_plot_f
|
|
index 8f5ad9f60d..e9892ac302 100755
|
|
--- a/gr-qtgui/apps/gr_time_plot_f
|
|
+++ b/gr-qtgui/apps/gr_time_plot_f
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -31,10 +31,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class plot_time_f(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_time_plot_i b/gr-qtgui/apps/gr_time_plot_i
|
|
index 8a7888b451..be995897c1 100755
|
|
--- a/gr-qtgui/apps/gr_time_plot_i
|
|
+++ b/gr-qtgui/apps/gr_time_plot_i
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -30,10 +30,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class plot_time_i(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_time_plot_s b/gr-qtgui/apps/gr_time_plot_s
|
|
index 7cee262379..7eff341225 100755
|
|
--- a/gr-qtgui/apps/gr_time_plot_s
|
|
+++ b/gr-qtgui/apps/gr_time_plot_s
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012,2013 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -30,10 +30,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class plot_time_s(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_time_raster_b b/gr-qtgui/apps/gr_time_raster_b
|
|
index ad8691489c..dc361832e6 100755
|
|
--- a/gr-qtgui/apps/gr_time_raster_b
|
|
+++ b/gr-qtgui/apps/gr_time_raster_b
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -31,10 +31,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class plot_time_raster_b(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/gr_time_raster_f b/gr-qtgui/apps/gr_time_raster_f
|
|
index 5d6a8389cf..ccd5a79069 100755
|
|
--- a/gr-qtgui/apps/gr_time_raster_f
|
|
+++ b/gr-qtgui/apps/gr_time_raster_f
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -31,10 +31,11 @@ except ImportError:
|
|
|
|
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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class plot_time_raster_f(plot_base.plot_base):
|
|
diff --git a/gr-qtgui/apps/plot_base.py b/gr-qtgui/apps/plot_base.py
|
|
index eaab7599c7..a08f460c9c 100644
|
|
--- a/gr-qtgui/apps/plot_base.py
|
|
+++ b/gr-qtgui/apps/plot_base.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -29,16 +29,16 @@ os.environ['GR_CONF_CONTROLPORT_ON'] = 'False'
|
|
|
|
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."
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
import scipy
|
|
except ImportError:
|
|
- print "Error: Scipy required (www.scipy.org)."
|
|
+ sys.stderr.write("Error: Scipy required (www.scipy.org).\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
diff --git a/gr-qtgui/apps/plot_constellation_form.py b/gr-qtgui/apps/plot_constellation_form.py
|
|
index 01c6ed1865..dc62e09f13 100644
|
|
--- a/gr-qtgui/apps/plot_constellation_form.py
|
|
+++ b/gr-qtgui/apps/plot_constellation_form.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -24,10 +24,11 @@ import sys
|
|
from gnuradio import filter
|
|
|
|
try:
|
|
- from PyQt4 import QtGui, QtCore
|
|
+ from PyQt5 import QtWidgets, Qt
|
|
import sip
|
|
except ImportError:
|
|
- print "Error: Program requires PyQt4."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -39,8 +40,8 @@ class plot_constellation_form(plot_form):
|
|
def __init__(self, top_block, title='', scale=1):
|
|
plot_form.__init__(self, top_block, title, scale)
|
|
|
|
- self.right_col_layout = QtGui.QVBoxLayout()
|
|
- self.right_col_form = QtGui.QFormLayout()
|
|
+ self.right_col_layout = QtWidgets.QVBoxLayout()
|
|
+ self.right_col_form = QtWidgets.QFormLayout()
|
|
self.right_col_layout.addLayout(self.right_col_form)
|
|
self.layout.addLayout(self.right_col_layout, 1,4,1,1)
|
|
|
|
@@ -51,12 +52,11 @@ class plot_constellation_form(plot_form):
|
|
self.ybar.setSingleStep(self._pos_scale*(max(self.top_block._y_range/10, 0.010)))
|
|
self.ybar.setPageStep(self._pos_scale*(max(self.top_block._y_range/2, 0.010)))
|
|
|
|
- self.auto_scale = QtGui.QCheckBox("Auto Scale", self)
|
|
+ self.auto_scale = QtWidgets.QCheckBox("Auto Scale", self)
|
|
if(self.top_block._auto_scale):
|
|
self.auto_scale.setChecked(self.top_block._auto_scale)
|
|
self.set_auto_scale(self.top_block._auto_scale)
|
|
- self.connect(self.auto_scale, QtCore.SIGNAL("stateChanged(int)"),
|
|
- self.set_auto_scale)
|
|
+ self.auto_scale.stateChanged.connect(self.set_auto_scale)
|
|
self.right_col_layout.addWidget(self.auto_scale)
|
|
|
|
self.ybar.setValue(1000*self.top_block._y_value)
|
|
diff --git a/gr-qtgui/apps/plot_form.py b/gr-qtgui/apps/plot_form.py
|
|
index 931565bd3e..39e3e1a928 100644
|
|
--- a/gr-qtgui/apps/plot_form.py
|
|
+++ b/gr-qtgui/apps/plot_form.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2012 Free Software Foundation, Inc.
|
|
+# Copyright 2012,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -21,17 +21,18 @@
|
|
#
|
|
|
|
try:
|
|
- from PyQt4 import QtGui, QtCore
|
|
+ from PyQt5 import QtWidgets, Qt
|
|
import sip
|
|
except ImportError:
|
|
- print "Error: Program requires PyQt4."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5.\n")
|
|
sys.exit(1)
|
|
|
|
import numpy
|
|
|
|
-class plot_form(QtGui.QWidget):
|
|
+class plot_form(QtWidgets.QWidget):
|
|
def __init__(self, top_block, title='', scale=1):
|
|
- QtGui.QWidget.__init__(self, None)
|
|
+ QtWidgets.QWidget.__init__(self, None)
|
|
|
|
self._start = 0
|
|
self._end = 0
|
|
@@ -44,81 +45,73 @@ class plot_form(QtGui.QWidget):
|
|
|
|
self.setWindowTitle(title)
|
|
|
|
- self.layout = QtGui.QGridLayout(self)
|
|
+ self.layout = QtWidgets.QGridLayout(self)
|
|
self.layout.addWidget(top_block.get_gui(), 1,2,1,2)
|
|
|
|
# Create a save action
|
|
- self.save_act = QtGui.QAction("Save", self)
|
|
- self.save_act.setShortcut(QtGui.QKeySequence.Save)
|
|
- self.connect(self.save_act, QtCore.SIGNAL("triggered()"),
|
|
- self.save_figure)
|
|
+ self.save_act = QtWidgets.QAction("Save", self)
|
|
+ self.save_act.setShortcut(QtWidgets.QKeySequence.Save)
|
|
+ self.save_act.triggered.connect(self.save_figure)
|
|
|
|
# Create an exit action
|
|
- self.exit_act = QtGui.QAction("Exit", self)
|
|
- self.exit_act.setShortcut(QtGui.QKeySequence.Close)
|
|
- self.connect(self.exit_act, QtCore.SIGNAL("triggered()"),
|
|
- self.close)
|
|
+ self.exit_act = QtWidgets.QAction("Exit", self)
|
|
+ self.exit_act.setShortcut(QtWidgets.QKeySequence.Close)
|
|
+ self.exit_act.triggered.connect(self.close)
|
|
|
|
# Create a menu for the window
|
|
- self.menu = QtGui.QToolBar("Menu", self)
|
|
+ self.menu = QtWidgets.QToolBar("Menu", self)
|
|
self.menu.addAction(self.save_act)
|
|
self.menu.addAction(self.exit_act)
|
|
|
|
self.layout.addWidget(self.menu, 0,0,1,4)
|
|
|
|
- self.left_col_form = QtGui.QFormLayout()
|
|
+ self.left_col_form = QtWidgets.QFormLayout()
|
|
self.layout.addLayout(self.left_col_form, 1,0,1,1)
|
|
self.layout.setColumnStretch(0, 0)
|
|
self.layout.setColumnStretch(2, 1)
|
|
|
|
# Create Edit boxes for X-axis start/stop
|
|
- self.size_val = QtGui.QIntValidator(0, top_block._max_nsamps, self)
|
|
+ self.size_val = QtWidgets.QIntValidator(0, top_block._max_nsamps, self)
|
|
|
|
- self.start_edit = QtGui.QLineEdit(self)
|
|
+ self.start_edit = QtWidgets.QLineEdit(self)
|
|
self.start_edit.setMinimumWidth(100)
|
|
self.start_edit.setMaximumWidth(100)
|
|
- self.start_edit.setText(QtCore.QString("%1").arg(top_block._start))
|
|
+ self.start_edit.setText("{0}".format(top_block._start))
|
|
self.start_edit.setValidator(self.size_val)
|
|
self.left_col_form.addRow("Start:", self.start_edit)
|
|
- self.connect(self.start_edit, QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_xaxis_pos)
|
|
+ self.start_edit.returnPressed.connect(self.update_xaxis_pos)
|
|
|
|
end = top_block._start + top_block._nsamps
|
|
- self.end_edit = QtGui.QLineEdit(self)
|
|
+ self.end_edit = QtWidgets.QLineEdit(self)
|
|
self.end_edit.setMinimumWidth(100)
|
|
self.end_edit.setMaximumWidth(100)
|
|
- self.end_edit.setText(QtCore.QString("%1").arg(end))
|
|
+ self.end_edit.setText("{0}".format(end))
|
|
self.end_edit.setValidator(self.size_val)
|
|
self.left_col_form.addRow("End:", self.end_edit)
|
|
- self.connect(self.end_edit, QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_xaxis_pos)
|
|
+ self.end_edit.returnPressed.connect(self.update_xaxis_pos)
|
|
|
|
# Create a slider to move the position in the file
|
|
- self.posbar = QtGui.QSlider(QtCore.Qt.Horizontal, self)
|
|
+ self.posbar = QtWidgets.QSlider(Qt.Qt.Horizontal, self)
|
|
self.posbar.setMaximum(self.top_block._max_nsamps)
|
|
self.posbar.setPageStep(self.top_block._nsamps)
|
|
- self.connect(self.posbar, QtCore.SIGNAL("valueChanged(int)"),
|
|
- self.update_xaxis_slider)
|
|
+ self.posbar.valueChanged.connect(self.update_xaxis_slider)
|
|
self.layout.addWidget(self.posbar, 2,2,1,1)
|
|
|
|
# Create Edit boxes for Y-axis min/max
|
|
- self.y_max_edit = QtGui.QLineEdit(self)
|
|
+ self.y_max_edit = QtWidgets.QLineEdit(self)
|
|
self.y_max_edit.setMinimumWidth(100)
|
|
self.y_max_edit.setMaximumWidth(100)
|
|
self.left_col_form.addRow("Y Max:", self.y_max_edit)
|
|
- self.connect(self.y_max_edit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.update_yaxis_pos)
|
|
+ self.y_max_edit.editingFinished.connect(self.update_yaxis_pos)
|
|
|
|
- self.y_min_edit = QtGui.QLineEdit(self)
|
|
+ self.y_min_edit = QtWidgets.QLineEdit(self)
|
|
self.y_min_edit.setMinimumWidth(100)
|
|
self.y_min_edit.setMaximumWidth(100)
|
|
self.left_col_form.addRow("Y Min:", self.y_min_edit)
|
|
- self.connect(self.y_min_edit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.update_yaxis_pos)
|
|
+ self.y_min_edit.editingFinished.connect(self.update_yaxis_pos)
|
|
|
|
- self.grid_check = QtGui.QCheckBox("Grid", self)
|
|
- self.connect(self.grid_check, QtCore.SIGNAL("stateChanged(int)"),
|
|
- self.set_grid_check)
|
|
+ self.grid_check = QtWidgets.QCheckBox("Grid", self)
|
|
+ self.grid_check.stateChanged.connect(self.set_grid_check)
|
|
self.left_col_form.addWidget(self.grid_check)
|
|
|
|
# Create a slider to move the plot's y-axis offset
|
|
@@ -126,42 +119,39 @@ class plot_form(QtGui.QWidget):
|
|
_ymin = numpy.int32(max(numpy.iinfo(numpy.int32).min, self.top_block._y_min))
|
|
_yrng = numpy.int32(min(numpy.iinfo(numpy.int32).max, self.top_block._y_range))
|
|
_yval = numpy.int32(min(numpy.iinfo(numpy.int32).max, self.top_block._y_value))
|
|
- self.ybar = QtGui.QSlider(QtCore.Qt.Vertical, self)
|
|
+ self.ybar = QtWidgets.QSlider(Qt.Qt.Vertical, self)
|
|
self.ybar.setMinimum(self._pos_scale*_ymin)
|
|
self.ybar.setMaximum(self._pos_scale*_ymax)
|
|
self.ybar.setSingleStep(self._pos_scale*(_yrng/10))
|
|
self.ybar.setPageStep(self._pos_scale*(_yrng/2))
|
|
self.ybar.setValue(self._pos_scale*_ymax)
|
|
- self.connect(self.ybar, QtCore.SIGNAL("valueChanged(int)"),
|
|
- self.update_yaxis_slider)
|
|
+ self.ybar.valueChanged.connect(self.update_yaxis_slider)
|
|
self.layout.addWidget(self.ybar, 1,1,1,1)
|
|
|
|
self.gui_y_axis(top_block._y_value-top_block._y_range, top_block._y_value)
|
|
|
|
# Create an edit box for the Sample Rate
|
|
sr = top_block._samp_rate
|
|
- self.samp_rate_edit = QtGui.QLineEdit(self)
|
|
+ self.samp_rate_edit = QtWidgets.QLineEdit(self)
|
|
self.samp_rate_edit.setMinimumWidth(100)
|
|
self.samp_rate_edit.setMaximumWidth(100)
|
|
- self.samp_rate_edit.setText(QtCore.QString("%1").arg(sr))
|
|
+ self.samp_rate_edit.setText("{0}".format(sr))
|
|
self.left_col_form.addRow("Sample Rate:", self.samp_rate_edit)
|
|
- self.connect(self.samp_rate_edit, QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_samp_rate)
|
|
+ self.samp_rate_edit.returnPressed.connect(self.update_samp_rate)
|
|
|
|
# Create an edit box for the center frequency
|
|
freq = top_block._center_freq
|
|
- self.freq_edit = QtGui.QLineEdit(self)
|
|
+ self.freq_edit = QtWidgets.QLineEdit(self)
|
|
self.freq_edit.setMinimumWidth(100)
|
|
self.freq_edit.setMaximumWidth(100)
|
|
- self.freq_edit.setText(QtCore.QString("%1").arg(freq))
|
|
+ self.freq_edit.setText("{0}".format(freq))
|
|
self.left_col_form.addRow("Frequency:", self.freq_edit)
|
|
- self.connect(self.freq_edit, QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_samp_rate)
|
|
+ self.freq_edit.returnPressed.connect(self.update_samp_rate)
|
|
|
|
self.resize(1000, 500)
|
|
|
|
def add_line_control(self, layout):
|
|
- self._line_tabs = QtGui.QTabWidget()
|
|
+ self._line_tabs = QtWidgets.QTabWidget()
|
|
|
|
self._line_pages = []
|
|
self._line_forms = []
|
|
@@ -172,51 +162,46 @@ class plot_form(QtGui.QWidget):
|
|
self._marker_edit = []
|
|
self._alpha_edit = []
|
|
for n in xrange(self.top_block._nsigs):
|
|
- self._line_pages.append(QtGui.QDialog())
|
|
- self._line_forms.append(QtGui.QFormLayout(self._line_pages[-1]))
|
|
+ self._line_pages.append(QtWidgets.QDialog())
|
|
+ self._line_forms.append(QtWidgets.QFormLayout(self._line_pages[-1]))
|
|
|
|
label = self.top_block.gui_snk.line_label(n)
|
|
- self._label_edit.append(QtGui.QLineEdit(self))
|
|
+ self._label_edit.append(QtWidgets.QLineEdit(self))
|
|
self._label_edit[-1].setMinimumWidth(125)
|
|
self._label_edit[-1].setMaximumWidth(125)
|
|
- self._label_edit[-1].setText(QtCore.QString("%1").arg(label))
|
|
+ self._label_edit[-1].setText("{0}".format(label))
|
|
self._line_forms[-1].addRow("Label:", self._label_edit[-1])
|
|
- self.connect(self._label_edit[-1], QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_line_label)
|
|
+ self._label_edit[-1].returnPressed.connect(self.update_line_label)
|
|
|
|
- width_val = QtGui.QIntValidator(1, 20, self)
|
|
- self._size_edit.append(QtGui.QLineEdit(self))
|
|
+ width_val = QtWidgets.QIntValidator(1, 20, self)
|
|
+ self._size_edit.append(QtWidgets.QLineEdit(self))
|
|
self._size_edit[-1].setValidator(width_val)
|
|
self._size_edit[-1].setMinimumWidth(100)
|
|
self._size_edit[-1].setMaximumWidth(100)
|
|
- self._size_edit[-1].setText(QtCore.QString("%1").arg(1))
|
|
+ self._size_edit[-1].setText("{0}".format(1))
|
|
self._line_forms[-1].addRow("Width:", self._size_edit[-1])
|
|
- self.connect(self._size_edit[-1], QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_line_size)
|
|
+ self._size_edit[-1].returnPressed.connect(self.update_line_size)
|
|
|
|
color = self.top_block.gui_snk.line_color(n)
|
|
- self._color_edit.append(QtGui.QLineEdit(self))
|
|
+ self._color_edit.append(QtWidgets.QLineEdit(self))
|
|
self._color_edit[-1].setMinimumWidth(100)
|
|
self._color_edit[-1].setMaximumWidth(100)
|
|
- self._color_edit[-1].setText(QtCore.QString("%1").arg(color))
|
|
+ self._color_edit[-1].setText("{0}".format(color))
|
|
self._line_forms[-1].addRow("Color:", self._color_edit[-1])
|
|
- self.connect(self._color_edit[-1], QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_line_color)
|
|
-
|
|
- self._qtstyles = {"None": QtCore.Qt.NoPen,
|
|
- "Solid": QtCore.Qt.SolidLine,
|
|
- "Dash": QtCore.Qt.DashLine,
|
|
- "Dot": QtCore.Qt.DotLine,
|
|
- "DashDot": QtCore.Qt.DashDotLine,
|
|
- "DashDotDot": QtCore.Qt.DashDotDotLine}
|
|
- self._style_edit.append(QtGui.QComboBox(self))
|
|
+ self._color_edit[-1].returnPressed.connect(self.update_line_color)
|
|
+
|
|
+ self._qtstyles = {"None": Qt.Qt.NoPen,
|
|
+ "Solid": Qt.Qt.SolidLine,
|
|
+ "Dash": Qt.Qt.DashLine,
|
|
+ "Dot": Qt.Qt.DotLine,
|
|
+ "DashDot": Qt.Qt.DashDotLine,
|
|
+ "DashDotDot": Qt.Qt.DashDotDotLine}
|
|
+ self._style_edit.append(QtWidgets.QComboBox(self))
|
|
self._style_edit[-1].addItems(["None", "Solid", "Dash",
|
|
"Dot", "DashDot", "DashDotDot"])
|
|
self._style_edit[-1].setCurrentIndex(1)
|
|
self._line_forms[-1].addRow("Style:", self._style_edit[-1])
|
|
- self.connect(self._style_edit[-1],
|
|
- QtCore.SIGNAL("currentIndexChanged(int)"),
|
|
- self.update_line_style)
|
|
+ self._style_edit[-1].currentIndexChanged.connect(self.update_line_style)
|
|
|
|
# A bit dangerous, this. If QWT ever changes the lineup,
|
|
# we will have to adjust this, too. But we also can't
|
|
@@ -236,28 +221,25 @@ class plot_form(QtGui.QWidget):
|
|
"Star 1": 12,
|
|
"Star 2": 13,
|
|
"Hexagon": 14}
|
|
- self._marker_edit.append(QtGui.QComboBox(self))
|
|
+ self._marker_edit.append(QtWidgets.QComboBox(self))
|
|
self._marker_edit[-1].addItems(["None", "Circle", "Rectangle", "Diamond",
|
|
"Triangle", "Down Triangle", "Left Triangle",
|
|
"Right Triangle", "Cross", "X-Cross",
|
|
"Horiz. Line", "Vert. Line", "Star 1",
|
|
"Star 2", "Hexagon"])
|
|
self._line_forms[-1].addRow("Marker:", self._marker_edit[-1])
|
|
- self.connect(self._marker_edit[-1],
|
|
- QtCore.SIGNAL("currentIndexChanged(int)"),
|
|
- self.update_line_marker)
|
|
+ self._marker_edit[-1].currentIndexChanged.connect(self.update_line_marker)
|
|
|
|
- alpha_val = QtGui.QDoubleValidator(0, 1.0, 2, self)
|
|
+ alpha_val = QtWidgets.QDoubleValidator(0, 1.0, 2, self)
|
|
alpha_val.setTop(1.0)
|
|
alpha = self.top_block.gui_snk.line_alpha(n)
|
|
- self._alpha_edit.append(QtGui.QLineEdit(self))
|
|
+ self._alpha_edit.append(QtWidgets.QLineEdit(self))
|
|
self._alpha_edit[-1].setMinimumWidth(50)
|
|
self._alpha_edit[-1].setMaximumWidth(100)
|
|
- self._alpha_edit[-1].setText(QtCore.QString("%1").arg(alpha))
|
|
+ self._alpha_edit[-1].setText("{0]".format(alpha))
|
|
self._alpha_edit[-1].setValidator(alpha_val)
|
|
self._line_forms[-1].addRow("Alpha:", self._alpha_edit[-1])
|
|
- self.connect(self._alpha_edit[-1], QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_line_alpha)
|
|
+ self._alpha_edit[-1].returnPressed.connect(self.update_line_alpha)
|
|
|
|
self._line_tabs.addTab(self._line_pages[-1], "{0}".format(label))
|
|
|
|
@@ -303,10 +285,10 @@ class plot_form(QtGui.QWidget):
|
|
newend = self.end_edit.text().toUInt()[0]
|
|
if(newstart != self._start or newend != self._end):
|
|
if(newend < newstart):
|
|
- QtGui.QMessageBox.information(
|
|
+ QtWidgets.QMessageBox.information(
|
|
self, "Warning",
|
|
"End sample is less than start sample.",
|
|
- QtGui.QMessageBox.Ok);
|
|
+ QtWidgets.QMessageBox.Ok);
|
|
else:
|
|
newnsamps = newend - newstart
|
|
self.top_block.reset(newstart, newnsamps)
|
|
@@ -377,13 +359,13 @@ class plot_form(QtGui.QWidget):
|
|
self.top_block.gui_snk.enable_grid(False)
|
|
|
|
def save_figure(self):
|
|
- qpix = QtGui.QPixmap.grabWidget(self.top_block.pyWin)
|
|
+ qpix = QtWidgets.QPixmap.grabWidget(self.top_block.pyWin)
|
|
types = "JPEG file (*.jpg);;" + \
|
|
"Portable Network Graphics file (*.png);;" + \
|
|
"Bitmap file (*.bmp);;" + \
|
|
"TIFF file (*.tiff)"
|
|
- filebox = QtGui.QFileDialog(self, "Save Image", "./", types)
|
|
- filebox.setViewMode(QtGui.QFileDialog.Detail)
|
|
+ filebox = QtWidgets.QFileDialog(self, "Save Image", "./", types)
|
|
+ filebox.setViewMode(QtWidgets.QFileDialog.Detail)
|
|
if(filebox.exec_()):
|
|
filename = filebox.selectedFiles()[0]
|
|
filetype = filebox.selectedNameFilter()
|
|
diff --git a/gr-qtgui/apps/plot_psd_base.py b/gr-qtgui/apps/plot_psd_base.py
|
|
index 46f903e1b5..bf070f2c1c 100644
|
|
--- a/gr-qtgui/apps/plot_psd_base.py
|
|
+++ b/gr-qtgui/apps/plot_psd_base.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -27,16 +27,16 @@ import os, 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."
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
import scipy
|
|
except ImportError:
|
|
- print "Error: Scipy required (www.scipy.org)."
|
|
+ sys.stderr.write("Error: Scipy required (www.scipy.org).\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -69,7 +69,7 @@ class plot_base(gr.top_block):
|
|
|
|
self._is_setup = False
|
|
|
|
- self.qapp = QtGui.QApplication(sys.argv)
|
|
+ self.qapp = QtWidgets.QApplication(sys.argv)
|
|
|
|
def setup(self):
|
|
self.skip = blocks.skiphead(self.dsize, self._start)
|
|
@@ -104,7 +104,7 @@ class plot_base(gr.top_block):
|
|
|
|
# Get Python Qt references
|
|
pyQt = self.gui_snk.pyqwidget()
|
|
- self.pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
|
|
+ self.pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget)
|
|
|
|
self._is_setup = True
|
|
|
|
diff --git a/gr-qtgui/apps/plot_psd_form.py b/gr-qtgui/apps/plot_psd_form.py
|
|
index 2d1fcd10bc..3109fb2b0c 100644
|
|
--- a/gr-qtgui/apps/plot_psd_form.py
|
|
+++ b/gr-qtgui/apps/plot_psd_form.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -24,10 +24,10 @@ import sys
|
|
from gnuradio import filter
|
|
|
|
try:
|
|
- from PyQt4 import QtGui, QtCore
|
|
+ from PyQt5 import QtWidgets, Qt
|
|
import sip
|
|
except ImportError:
|
|
- print "Error: Program requires PyQt4."
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -39,39 +39,35 @@ class plot_psd_form(plot_form):
|
|
def __init__(self, top_block, title=''):
|
|
plot_form.__init__(self, top_block, title)
|
|
|
|
- self.right_col_layout = QtGui.QVBoxLayout()
|
|
- self.right_col_form = QtGui.QFormLayout()
|
|
+ self.right_col_layout = QtWidgets.QVBoxLayout()
|
|
+ self.right_col_form = QtWidgets.QFormLayout()
|
|
self.right_col_layout.addLayout(self.right_col_form)
|
|
self.layout.addLayout(self.right_col_layout, 1,4,1,1)
|
|
|
|
- self.psd_size_val = QtGui.QIntValidator(0, 2**18, self)
|
|
- self.psd_size_edit = QtGui.QLineEdit(self)
|
|
+ self.psd_size_val = QtWidgets.QIntValidator(0, 2**18, self)
|
|
+ self.psd_size_edit = QtWidgets.QLineEdit(self)
|
|
self.psd_size_edit.setMinimumWidth(50)
|
|
self.psd_size_edit.setMaximumWidth(100)
|
|
- self.psd_size_edit.setText(QtCore.QString("%1").arg(top_block._psd_size))
|
|
+ self.psd_size_edit.setText("{0}".format(top_block._psd_size))
|
|
self.psd_size_edit.setValidator(self.psd_size_val)
|
|
self.right_col_form.addRow("FFT:", self.psd_size_edit)
|
|
- self.connect(self.psd_size_edit, QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_psd_size)
|
|
+ self.psd_size_edit.returnPressed.connect(self.update_psd_size)
|
|
|
|
- self.psd_win_combo = QtGui.QComboBox(self)
|
|
+ self.psd_win_combo = QtWidgets.QComboBox(self)
|
|
self.psd_win_combo.addItems(["None", "Hamming", "Hann", "Blackman",
|
|
"Rectangular", "Kaiser", "Blackman-harris"])
|
|
self.psd_win_combo.setCurrentIndex(self.top_block.gui_snk.fft_window()+1)
|
|
self.right_col_form.addRow("Window:", self.psd_win_combo)
|
|
- self.connect(self.psd_win_combo,
|
|
- QtCore.SIGNAL("currentIndexChanged(int)"),
|
|
- self.update_psd_win)
|
|
+ self.psd_win_combo.currentIndexChanged.connect(self.update_psd_win)
|
|
|
|
- self.psd_avg_val = QtGui.QDoubleValidator(0, 1.0, 4, self)
|
|
- self.psd_avg_edit = QtGui.QLineEdit(self)
|
|
+ self.psd_avg_val = QtWidgets.QDoubleValidator(0, 1.0, 4, self)
|
|
+ self.psd_avg_edit = QtWidgets.QLineEdit(self)
|
|
self.psd_avg_edit.setMinimumWidth(50)
|
|
self.psd_avg_edit.setMaximumWidth(100)
|
|
- self.psd_avg_edit.setText(QtCore.QString("%1").arg(top_block._avg))
|
|
+ self.psd_avg_edit.setText("{0}".format(top_block._avg))
|
|
self.psd_avg_edit.setValidator(self.psd_avg_val)
|
|
self.right_col_form.addRow("Average:", self.psd_avg_edit)
|
|
- self.connect(self.psd_avg_edit, QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_psd_avg)
|
|
+ self.psd_avg_edit.returnPressed.connect(self.update_psd_avg)
|
|
|
|
self.add_line_control(self.right_col_layout)
|
|
|
|
diff --git a/gr-qtgui/apps/plot_spectrogram_base.py b/gr-qtgui/apps/plot_spectrogram_base.py
|
|
index b252bb8863..295ef4a753 100644
|
|
--- a/gr-qtgui/apps/plot_spectrogram_base.py
|
|
+++ b/gr-qtgui/apps/plot_spectrogram_base.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -27,16 +27,16 @@ import os, 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."
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
import scipy
|
|
except ImportError:
|
|
- print "Error: Scipy required (www.scipy.org)."
|
|
+ sys.stderr.write("Error: Scipy required (www.scipy.org).\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -69,7 +69,7 @@ class plot_base(gr.top_block):
|
|
|
|
self._is_setup = False
|
|
|
|
- self.qapp = QtGui.QApplication(sys.argv)
|
|
+ self.qapp = QtWidgets.QApplication(sys.argv)
|
|
|
|
def setup(self):
|
|
self.skip = blocks.skiphead(self.dsize, self._start)
|
|
@@ -106,7 +106,7 @@ class plot_base(gr.top_block):
|
|
|
|
# Get Python Qt references
|
|
pyQt = self.gui_snk.pyqwidget()
|
|
- self.pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
|
|
+ self.pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget)
|
|
|
|
self._is_setup = True
|
|
|
|
diff --git a/gr-qtgui/apps/plot_spectrogram_form.py b/gr-qtgui/apps/plot_spectrogram_form.py
|
|
index 17cb0335bd..ab4685106d 100644
|
|
--- a/gr-qtgui/apps/plot_spectrogram_form.py
|
|
+++ b/gr-qtgui/apps/plot_spectrogram_form.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -24,10 +24,10 @@ import sys
|
|
from gnuradio import filter
|
|
|
|
try:
|
|
- from PyQt4 import QtGui, QtCore
|
|
+ from PyQt5 import QtWidgets, Qt
|
|
import sip
|
|
except ImportError:
|
|
- print "Error: Program requires PyQt4."
|
|
+ sys.stderr.write("Error: Program requires PyQt5.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -39,45 +39,40 @@ class plot_spectrogram_form(plot_form):
|
|
def __init__(self, top_block, title=''):
|
|
plot_form.__init__(self, top_block, title)
|
|
|
|
- self.right_col_layout = QtGui.QVBoxLayout()
|
|
- self.right_col_form = QtGui.QFormLayout()
|
|
+ self.right_col_layout = QtWidgets.QVBoxLayout()
|
|
+ self.right_col_form = QtWidgets.QFormLayout()
|
|
self.right_col_layout.addLayout(self.right_col_form)
|
|
self.layout.addLayout(self.right_col_layout, 1,4,1,1)
|
|
|
|
- self.psd_size_val = QtGui.QIntValidator(0, 2**18, self)
|
|
- self.psd_size_edit = QtGui.QLineEdit(self)
|
|
+ self.psd_size_val = QtWidgets.QIntValidator(0, 2**18, self)
|
|
+ self.psd_size_edit = QtWidgets.QLineEdit(self)
|
|
self.psd_size_edit.setMinimumWidth(50)
|
|
self.psd_size_edit.setMaximumWidth(100)
|
|
- self.psd_size_edit.setText(QtCore.QString("%1").arg(top_block._psd_size))
|
|
+ self.psd_size_edit.setText("{0}".format(top_block._psd_size))
|
|
self.psd_size_edit.setValidator(self.psd_size_val)
|
|
self.right_col_form.addRow("FFT Size:", self.psd_size_edit)
|
|
- self.connect(self.psd_size_edit, QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_psd_size)
|
|
+ self.psd_size_edit.returnPressed.connect(self.update_psd_size)
|
|
|
|
- self.psd_win_combo = QtGui.QComboBox(self)
|
|
+ self.psd_win_combo = QtWidgets.QComboBox(self)
|
|
self.psd_win_combo.addItems(["None", "Hamming", "Hann", "Blackman",
|
|
"Rectangular", "Kaiser", "Blackman-harris"])
|
|
self.psd_win_combo.setCurrentIndex(self.top_block.gui_snk.fft_window()+1)
|
|
self.right_col_form.addRow("Window:", self.psd_win_combo)
|
|
- self.connect(self.psd_win_combo,
|
|
- QtCore.SIGNAL("currentIndexChanged(int)"),
|
|
- self.update_psd_win)
|
|
+ self.psd_win_combo.currentIndexChanged.connect(self.update_psd_win)
|
|
|
|
- self.psd_avg_val = QtGui.QDoubleValidator(0, 1.0, 4, self)
|
|
- self.psd_avg_edit = QtGui.QLineEdit(self)
|
|
+ self.psd_avg_val = QtWidgets.QDoubleValidator(0, 1.0, 4, self)
|
|
+ self.psd_avg_edit = QtWidgets.QLineEdit(self)
|
|
self.psd_avg_edit.setMinimumWidth(50)
|
|
self.psd_avg_edit.setMaximumWidth(100)
|
|
- self.psd_avg_edit.setText(QtCore.QString("%1").arg(top_block._avg))
|
|
+ self.psd_avg_edit.setText("{0}".format(top_block._avg))
|
|
self.psd_avg_edit.setValidator(self.psd_avg_val)
|
|
self.right_col_form.addRow("Average:", self.psd_avg_edit)
|
|
- self.connect(self.psd_avg_edit, QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_psd_avg)
|
|
+ self.psd_avg_edit.returnPressed.connect(self.update_psd_avg)
|
|
|
|
- self.autoscale_button = QtGui.QPushButton("Auto Scale", self)
|
|
+ self.autoscale_button = QtWidgets.QPushButton("Auto Scale", self)
|
|
self.autoscale_button.setMaximumWidth(100)
|
|
self.right_col_layout.addWidget(self.autoscale_button)
|
|
- self.connect(self.autoscale_button, QtCore.SIGNAL("clicked()"),
|
|
- self.spectrogram_auto_scale)
|
|
+ self.autoscale_button.clicked.connect(self.spectrogram_auto_scale)
|
|
|
|
self.add_spectrogram_control(self.right_col_layout)
|
|
|
|
@@ -103,7 +98,7 @@ class plot_spectrogram_form(plot_form):
|
|
self.top_block._nsamps)
|
|
|
|
def add_spectrogram_control(self, layout):
|
|
- self._line_tabs = QtGui.QTabWidget()
|
|
+ self._line_tabs = QtWidgets.QTabWidget()
|
|
|
|
self._line_pages = []
|
|
self._line_forms = []
|
|
@@ -114,38 +109,34 @@ class plot_spectrogram_form(plot_form):
|
|
self._marker_edit = []
|
|
self._alpha_edit = []
|
|
for n in xrange(self.top_block._nsigs):
|
|
- self._line_pages.append(QtGui.QDialog())
|
|
- self._line_forms.append(QtGui.QFormLayout(self._line_pages[-1]))
|
|
+ self._line_pages.append(QtWidgets.QDialog())
|
|
+ self._line_forms.append(QtWidgets.QFormLayout(self._line_pages[-1]))
|
|
|
|
label = self.top_block.gui_snk.line_label(n)
|
|
- self._label_edit.append(QtGui.QLineEdit(self))
|
|
+ self._label_edit.append(QtWidgets.QLineEdit(self))
|
|
self._label_edit[-1].setMinimumWidth(125)
|
|
self._label_edit[-1].setMaximumWidth(125)
|
|
- self._label_edit[-1].setText(QtCore.QString("%1").arg(label))
|
|
+ self._label_edit[-1].setText("{0}".format(label))
|
|
self._line_forms[-1].addRow("Label:", self._label_edit[-1])
|
|
- self.connect(self._label_edit[-1], QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_line_label)
|
|
+ self._label_edit[-1].returnPressed.connect(self.update_line_label)
|
|
|
|
self._qtcolormaps = ["Multi Color", "White Hot",
|
|
"Black Hot", "Incandescent"]
|
|
- self._color_edit.append(QtGui.QComboBox(self))
|
|
+ self._color_edit.append(QtWidgets.QComboBox(self))
|
|
self._color_edit[-1].addItems(self._qtcolormaps)
|
|
self._line_forms[-1].addRow("Color Map:", self._color_edit[-1])
|
|
- self.connect(self._color_edit[-1],
|
|
- QtCore.SIGNAL("currentIndexChanged(int)"),
|
|
- self.update_color_map)
|
|
+ self._color_edit[-1].currentIndexChanged.connect(self.update_color_map)
|
|
|
|
- alpha_val = QtGui.QDoubleValidator(0, 1.0, 2, self)
|
|
+ alpha_val = QtWidgets.QDoubleValidator(0, 1.0, 2, self)
|
|
alpha_val.setTop(1.0)
|
|
alpha = self.top_block.gui_snk.line_alpha(n)
|
|
- self._alpha_edit.append(QtGui.QLineEdit(self))
|
|
+ self._alpha_edit.append(QtWidgets.QLineEdit(self))
|
|
self._alpha_edit[-1].setMinimumWidth(50)
|
|
self._alpha_edit[-1].setMaximumWidth(100)
|
|
- self._alpha_edit[-1].setText(QtCore.QString("%1").arg(alpha))
|
|
+ self._alpha_edit[-1].setText("{0}".format(alpha))
|
|
self._alpha_edit[-1].setValidator(alpha_val)
|
|
self._line_forms[-1].addRow("Alpha:", self._alpha_edit[-1])
|
|
- self.connect(self._alpha_edit[-1], QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_line_alpha)
|
|
+ self._alpha_edit[-1].returnPressed.connect(self.update_line_alpha)
|
|
|
|
self._line_tabs.addTab(self._line_pages[-1], "{0}".format(label))
|
|
|
|
diff --git a/gr-qtgui/apps/plot_time_base.py b/gr-qtgui/apps/plot_time_base.py
|
|
index 007c94d044..82e7d75cae 100644
|
|
--- a/gr-qtgui/apps/plot_time_base.py
|
|
+++ b/gr-qtgui/apps/plot_time_base.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -27,16 +27,16 @@ import os, 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."
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
import scipy
|
|
except ImportError:
|
|
- print "Error: Scipy required (www.scipy.org)."
|
|
+ sys.stderr.write("Error: Scipy required (www.scipy.org).\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -68,7 +68,7 @@ class plot_base(gr.top_block):
|
|
self._y_value = 1
|
|
self.gui_y_axis = None
|
|
|
|
- self.qapp = QtGui.QApplication(sys.argv)
|
|
+ self.qapp = QtWidgets.QApplication(sys.argv)
|
|
|
|
def setup(self):
|
|
self.skip = blocks.skiphead(self.dsize, self._start)
|
|
@@ -108,7 +108,7 @@ class plot_base(gr.top_block):
|
|
|
|
# Get Python Qt references
|
|
pyQt = self.gui_snk.pyqwidget()
|
|
- self.pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
|
|
+ self.pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget)
|
|
|
|
self._is_setup = True
|
|
|
|
diff --git a/gr-qtgui/apps/plot_time_form.py b/gr-qtgui/apps/plot_time_form.py
|
|
index 0ab94e6cfe..0e650813ff 100644
|
|
--- a/gr-qtgui/apps/plot_time_form.py
|
|
+++ b/gr-qtgui/apps/plot_time_form.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -24,10 +24,10 @@ import sys
|
|
from gnuradio import filter
|
|
|
|
try:
|
|
- from PyQt4 import QtGui, QtCore
|
|
+ from PyQt5 import QtWidgets, Qt
|
|
import sip
|
|
except ImportError:
|
|
- print "Error: Program requires PyQt4."
|
|
+ sys.stderr.write("Error: Program requires PyQt5.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -39,21 +39,19 @@ class plot_time_form(plot_form):
|
|
def __init__(self, top_block, title='', scale=1):
|
|
plot_form.__init__(self, top_block, title, scale)
|
|
|
|
- self.right_col_layout = QtGui.QVBoxLayout()
|
|
- self.right_col_form = QtGui.QFormLayout()
|
|
+ self.right_col_layout = QtWidgets.QVBoxLayout()
|
|
+ self.right_col_form = QtWidgets.QFormLayout()
|
|
self.right_col_layout.addLayout(self.right_col_form)
|
|
self.layout.addLayout(self.right_col_layout, 1,4,1,1)
|
|
|
|
- self.auto_scale = QtGui.QCheckBox("Auto Scale", self)
|
|
+ self.auto_scale = QtWidgets.QCheckBox("Auto Scale", self)
|
|
if(self.top_block._auto_scale):
|
|
self.auto_scale.setChecked(self.top_block._auto_scale)
|
|
- self.connect(self.auto_scale, QtCore.SIGNAL("stateChanged(int)"),
|
|
- self.set_auto_scale)
|
|
+ self.auto_scale.stateChanged.connect(self.set_auto_scale)
|
|
self.right_col_layout.addWidget(self.auto_scale)
|
|
|
|
- self.stem = QtGui.QCheckBox("Stem", self)
|
|
- self.connect(self.stem, QtCore.SIGNAL("stateChanged(int)"),
|
|
- self.enable_stem)
|
|
+ self.stem = QtWidgets.QCheckBox("Stem", self)
|
|
+ self.stem.stateChanged.connect(self.enable_stem)
|
|
self.right_col_layout.addWidget(self.stem)
|
|
|
|
self.add_line_control(self.right_col_layout)
|
|
@@ -76,4 +74,3 @@ class plot_time_form(plot_form):
|
|
def update_samp_rate(self):
|
|
sr = self.samp_rate_edit.text().toDouble()[0]
|
|
self.top_block.gui_snk.set_samp_rate(sr)
|
|
-
|
|
diff --git a/gr-qtgui/apps/plot_time_raster_base.py b/gr-qtgui/apps/plot_time_raster_base.py
|
|
index 856c8c8945..f1d4db8523 100644
|
|
--- a/gr-qtgui/apps/plot_time_raster_base.py
|
|
+++ b/gr-qtgui/apps/plot_time_raster_base.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -27,16 +27,18 @@ import os, 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."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
import scipy
|
|
except ImportError:
|
|
- print "Error: Scipy required (www.scipy.org)."
|
|
+ import sys
|
|
+ sys.stderr.write("Error: Scipy required (www.scipy.org).\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -68,7 +70,7 @@ class plot_base(gr.top_block):
|
|
self._y_value = 1
|
|
self.gui_y_axis = None
|
|
|
|
- self.qapp = QtGui.QApplication(sys.argv)
|
|
+ self.qapp = QtWidgets.QApplication(sys.argv)
|
|
|
|
def setup(self):
|
|
self.skip = blocks.skiphead(self.dsize, self._start)
|
|
@@ -103,7 +105,7 @@ class plot_base(gr.top_block):
|
|
|
|
# Get Python Qt references
|
|
pyQt = self.gui_snk.pyqwidget()
|
|
- self.pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
|
|
+ self.pyWin = sip.wrapinstance(pyQt, QtWidgets.QWidget)
|
|
|
|
self._is_setup = True
|
|
|
|
diff --git a/gr-qtgui/apps/plot_time_raster_form.py b/gr-qtgui/apps/plot_time_raster_form.py
|
|
index 32fbba0765..ffd2975042 100644
|
|
--- a/gr-qtgui/apps/plot_time_raster_form.py
|
|
+++ b/gr-qtgui/apps/plot_time_raster_form.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2013 Free Software Foundation, Inc.
|
|
+# Copyright 2013,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -24,10 +24,10 @@ import sys, math
|
|
from gnuradio import filter
|
|
|
|
try:
|
|
- from PyQt4 import QtGui, QtCore
|
|
+ from PyQt5 import QtWidgets, Qt
|
|
import sip
|
|
except ImportError:
|
|
- print "Error: Program requires PyQt4."
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -39,39 +39,35 @@ class plot_time_raster_form(plot_form):
|
|
def __init__(self, top_block, title='', scale=1):
|
|
plot_form.__init__(self, top_block, title, scale)
|
|
|
|
- self.right_col_layout = QtGui.QVBoxLayout()
|
|
- self.right_col_form = QtGui.QFormLayout()
|
|
+ self.right_col_layout = QtWidgets.QVBoxLayout()
|
|
+ self.right_col_form = QtWidgets.QFormLayout()
|
|
self.right_col_layout.addLayout(self.right_col_form)
|
|
self.layout.addLayout(self.right_col_layout, 1,4,1,1)
|
|
|
|
- self.auto_scale = QtGui.QCheckBox("Auto Scale", self)
|
|
+ self.auto_scale = QtWidgets.QCheckBox("Auto Scale", self)
|
|
if(self.top_block._auto_scale):
|
|
self.auto_scale.setChecked(self.top_block._auto_scale)
|
|
- self.connect(self.auto_scale, QtCore.SIGNAL("stateChanged(int)"),
|
|
- self.set_auto_scale)
|
|
+ self.auto_scale.stateChanged.connect(self.set_auto_scale)
|
|
self.right_col_layout.addWidget(self.auto_scale)
|
|
|
|
- self.ncols_edit = QtGui.QLineEdit(self)
|
|
+ self.ncols_edit = QtWidgets.QLineEdit(self)
|
|
self.ncols_edit.setMinimumWidth(100)
|
|
self.ncols_edit.setMaximumWidth(100)
|
|
- self.ncols_edit.setText(QtCore.QString("%1").arg(top_block._ncols))
|
|
+ self.ncols_edit.setText("{0}".format(top_block._ncols))
|
|
self.right_col_form.addRow("Num. Cols.", self.ncols_edit)
|
|
- self.connect(self.ncols_edit, QtCore.SIGNAL("returnPressed()"),
|
|
- self.ncols_update)
|
|
+ self.ncols_edit.returnPressed.connect(self.ncols_update)
|
|
|
|
- self.nrows_edit = QtGui.QLineEdit(self)
|
|
+ self.nrows_edit = QtWidgets.QLineEdit(self)
|
|
self.nrows_edit.setMinimumWidth(100)
|
|
self.nrows_edit.setMaximumWidth(100)
|
|
- self.nrows_edit.setText(QtCore.QString("%1").arg(top_block._nrows))
|
|
+ self.nrows_edit.setText("{0}".format(top_block._nrows))
|
|
self.right_col_form.addRow("Num. Rows.", self.nrows_edit)
|
|
- self.connect(self.nrows_edit, QtCore.SIGNAL("returnPressed()"),
|
|
- self.nrows_update)
|
|
-
|
|
+ self.nrows_edit.returnPressed.connect(self.nrows_update)
|
|
|
|
self.add_raster_control(self.right_col_layout)
|
|
|
|
def add_raster_control(self, layout):
|
|
- self._line_tabs = QtGui.QTabWidget()
|
|
+ self._line_tabs = QtWidgets.QTabWidget()
|
|
|
|
self._line_pages = []
|
|
self._line_forms = []
|
|
@@ -82,39 +78,35 @@ class plot_time_raster_form(plot_form):
|
|
self._marker_edit = []
|
|
self._alpha_edit = []
|
|
for n in xrange(self.top_block._nsigs):
|
|
- self._line_pages.append(QtGui.QDialog())
|
|
- self._line_forms.append(QtGui.QFormLayout(self._line_pages[-1]))
|
|
+ self._line_pages.append(QtWidgets.QDialog())
|
|
+ self._line_forms.append(QtWidgets.QFormLayout(self._line_pages[-1]))
|
|
|
|
label = self.top_block.gui_snk.line_label(n)
|
|
- self._label_edit.append(QtGui.QLineEdit(self))
|
|
+ self._label_edit.append(QtWidgets.QLineEdit(self))
|
|
self._label_edit[-1].setMinimumWidth(125)
|
|
self._label_edit[-1].setMaximumWidth(125)
|
|
- self._label_edit[-1].setText(QtCore.QString("%1").arg(label))
|
|
+ self._label_edit[-1].setText("{0}".format(label))
|
|
self._line_forms[-1].addRow("Label:", self._label_edit[-1])
|
|
- self.connect(self._label_edit[-1], QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_line_label)
|
|
+ self._label_edit[-1].returnPressed.connect(self.update_line_label)
|
|
|
|
self._qtcolormaps = ["Multi Color", "White Hot",
|
|
"Black Hot", "Incandescent"]
|
|
- self._color_edit.append(QtGui.QComboBox(self))
|
|
+ self._color_edit.append(QtWidgets.QComboBox(self))
|
|
self._color_edit[-1].addItems(self._qtcolormaps)
|
|
self._color_edit[-1].setCurrentIndex(1)
|
|
self._line_forms[-1].addRow("Color Map:", self._color_edit[-1])
|
|
- self.connect(self._color_edit[-1],
|
|
- QtCore.SIGNAL("currentIndexChanged(int)"),
|
|
- self.update_color_map)
|
|
+ self._color_edit[-1].currentIndexChanged.connect(self.update_color_map)
|
|
|
|
- alpha_val = QtGui.QDoubleValidator(0, 1.0, 2, self)
|
|
+ alpha_val = QtWidgets.QDoubleValidator(0, 1.0, 2, self)
|
|
alpha_val.setTop(1.0)
|
|
alpha = self.top_block.gui_snk.line_alpha(n)
|
|
- self._alpha_edit.append(QtGui.QLineEdit(self))
|
|
+ self._alpha_edit.append(QtWidgets.QLineEdit(self))
|
|
self._alpha_edit[-1].setMinimumWidth(50)
|
|
self._alpha_edit[-1].setMaximumWidth(100)
|
|
- self._alpha_edit[-1].setText(QtCore.QString("%1").arg(alpha))
|
|
+ self._alpha_edit[-1].setText("{0}".format(alpha))
|
|
self._alpha_edit[-1].setValidator(alpha_val)
|
|
self._line_forms[-1].addRow("Alpha:", self._alpha_edit[-1])
|
|
- self.connect(self._alpha_edit[-1], QtCore.SIGNAL("returnPressed()"),
|
|
- self.update_line_alpha)
|
|
+ self._alpha_edit[-1].returnPressed.connect(self.update_line_alpha)
|
|
|
|
self._line_tabs.addTab(self._line_pages[-1], "{0}".format(label))
|
|
|
|
@@ -153,5 +145,3 @@ class plot_time_raster_form(plot_form):
|
|
|
|
nsamps = int(math.ceil(self.top_block._ncols*(n+1)))
|
|
self.top_block.reset(self._start, nsamps)
|
|
-
|
|
-
|
|
diff --git a/gr-qtgui/apps/qt_digital.py b/gr-qtgui/apps/qt_digital.py
|
|
index fef4f448b4..fbaeacd462 100755
|
|
--- a/gr-qtgui/apps/qt_digital.py
|
|
+++ b/gr-qtgui/apps/qt_digital.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2011 Free Software Foundation, Inc.
|
|
+# Copyright 2011,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -29,28 +29,28 @@ 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."
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
import scipy
|
|
except ImportError:
|
|
- print "Error: Program requires scipy (see: www.scipy.org)."
|
|
+ sys.stderr.write("Error: Program requires scipy (see: www.scipy.org).\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
from qt_digital_window import Ui_DigitalWindow
|
|
except ImportError:
|
|
- print "Error: could not find qt_digital_window.py:"
|
|
- print "\t\"Please run: pyuic4 qt_digital_window.ui -o qt_digital_window.py\""
|
|
+ sys.stderr.write("Error: could not find qt_digital_window.py:\n")
|
|
+ sys.stderr.write("\t\"Please run: pyuic5 qt_digital_window.ui -o qt_digital_window.py\"\n")
|
|
sys.exit(1)
|
|
|
|
-class dialog_box(QtGui.QMainWindow):
|
|
+class dialog_box(QtWidgets.QMainWindow):
|
|
def __init__(self, snkTx, snkRx, fg, parent=None):
|
|
- QtGui.QWidget.__init__(self, parent)
|
|
+ QtWidgets.QWidget.__init__(self, parent)
|
|
self.gui = Ui_DigitalWindow()
|
|
self.gui.setupUi(self)
|
|
|
|
@@ -71,23 +71,13 @@ class dialog_box(QtGui.QMainWindow):
|
|
|
|
|
|
# Connect up some signals
|
|
- self.connect(self.gui.pauseButton, QtCore.SIGNAL("clicked()"),
|
|
- self.pauseFg)
|
|
-
|
|
- self.connect(self.gui.sampleRateEdit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.sampleRateEditText)
|
|
-
|
|
- self.connect(self.gui.snrEdit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.snrEditText)
|
|
- self.connect(self.gui.freqEdit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.freqEditText)
|
|
- self.connect(self.gui.timeEdit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.timeEditText)
|
|
-
|
|
- self.connect(self.gui.gainMuEdit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.gainMuEditText)
|
|
- self.connect(self.gui.alphaEdit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.alphaEditText)
|
|
+ self.gui.pauseButton.clicked.connect(self.pauseFg)
|
|
+ self.gui.sampleRateEdit.editingFinished.connect(self.sampleRateEditText)
|
|
+ self.gui.snrEdit.editingFinished.connect(self.snrEditText)
|
|
+ self.gui.freqEdit.editingFinished.connect(self.freqEditText)
|
|
+ self.gui.timeEdit.editingFinished.connect(self.timeEditText)
|
|
+ self.gui.gainMuEdit.editingFinished.connect(self.gainMuEditText)
|
|
+ self.gui.alphaEdit.editingFinished.connect(self.alphaEditText)
|
|
|
|
|
|
def pauseFg(self):
|
|
@@ -102,7 +92,7 @@ class dialog_box(QtGui.QMainWindow):
|
|
# Accessor functions for Gui to manipulate system parameters
|
|
def set_sample_rate(self, sr):
|
|
ssr = eng_notation.num_to_str(sr)
|
|
- self.gui.sampleRateEdit.setText(QtCore.QString("%1").arg(ssr))
|
|
+ self.gui.sampleRateEdit.setText("{0}".format(ssr))
|
|
|
|
def sampleRateEditText(self):
|
|
try:
|
|
@@ -115,13 +105,13 @@ class dialog_box(QtGui.QMainWindow):
|
|
|
|
# Accessor functions for Gui to manipulate channel model
|
|
def set_snr(self, snr):
|
|
- self.gui.snrEdit.setText(QtCore.QString("%1").arg(snr))
|
|
+ self.gui.snrEdit.setText("{0}".format(snr))
|
|
|
|
def set_frequency(self, fo):
|
|
- self.gui.freqEdit.setText(QtCore.QString("%1").arg(fo))
|
|
+ self.gui.freqEdit.setText("{0}".format(fo))
|
|
|
|
def set_time_offset(self, to):
|
|
- self.gui.timeEdit.setText(QtCore.QString("%1").arg(to))
|
|
+ self.gui.timeEdit.setText("{0}".format(to))
|
|
|
|
def snrEditText(self):
|
|
try:
|
|
@@ -147,10 +137,10 @@ class dialog_box(QtGui.QMainWindow):
|
|
|
|
# Accessor functions for Gui to manipulate receiver parameters
|
|
def set_gain_mu(self, gain):
|
|
- self.gui.gainMuEdit.setText(QtCore.QString("%1").arg(gain))
|
|
+ self.gui.gainMuEdit.setText("{0}".format(gain))
|
|
|
|
def set_loop_bw(self, bw):
|
|
- self.gui.alphaEdit.setText(QtCore.QString("%1").arg(bw))
|
|
+ self.gui.alphaEdit.setText("{0}".format(bw))
|
|
|
|
def alphaEditText(self):
|
|
try:
|
|
@@ -171,7 +161,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)
|
|
|
|
self._sample_rate = 2000e3
|
|
|
|
@@ -231,10 +221,10 @@ class my_top_block(gr.top_block):
|
|
self.connect(self.channel, self.rx_rrc, self.receiver, self.snk_rx)
|
|
|
|
pyTxQt = self.snk_tx.pyqwidget()
|
|
- pyTx = sip.wrapinstance(pyTxQt, QtGui.QWidget)
|
|
+ pyTx = sip.wrapinstance(pyTxQt, QtWidgets.QWidget)
|
|
|
|
pyRxQt = self.snk_rx.pyqwidget()
|
|
- pyRx = sip.wrapinstance(pyRxQt, QtGui.QWidget)
|
|
+ pyRx = sip.wrapinstance(pyRxQt, QtWidgets.QWidget)
|
|
|
|
self.main_box = dialog_box(pyTx, pyRx, self);
|
|
self.main_box.show()
|
|
diff --git a/gr-qtgui/apps/qt_digital_window.py b/gr-qtgui/apps/qt_digital_window.py
|
|
index 50dd53a923..90c0f29e09 100644
|
|
--- a/gr-qtgui/apps/qt_digital_window.py
|
|
+++ b/gr-qtgui/apps/qt_digital_window.py
|
|
@@ -3,159 +3,159 @@
|
|
# Form implementation generated from reading ui file 'qt_digital_window.ui'
|
|
#
|
|
# Created: Sat May 1 20:14:02 2010
|
|
-# by: PyQt4 UI code generator 4.6.1
|
|
+# by: PyQt5 UI code generator 4.6.1
|
|
#
|
|
# WARNING! All changes made in this file will be lost!
|
|
|
|
-from PyQt4 import QtCore, QtGui
|
|
+from PyQt5 import QtWidgets, Qt
|
|
|
|
class Ui_DigitalWindow(object):
|
|
def setupUi(self, DigitalWindow):
|
|
DigitalWindow.setObjectName("DigitalWindow")
|
|
DigitalWindow.resize(1236, 741)
|
|
- self.centralwidget = QtGui.QWidget(DigitalWindow)
|
|
+ self.centralwidget = QtWidgets.QWidget(DigitalWindow)
|
|
self.centralwidget.setObjectName("centralwidget")
|
|
- self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget)
|
|
+ self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
|
|
self.verticalLayout.setObjectName("verticalLayout")
|
|
- self.sinkFrame = QtGui.QFrame(self.centralwidget)
|
|
- self.sinkFrame.setMinimumSize(QtCore.QSize(0, 550))
|
|
- self.sinkFrame.setFrameShape(QtGui.QFrame.StyledPanel)
|
|
- self.sinkFrame.setFrameShadow(QtGui.QFrame.Raised)
|
|
+ self.sinkFrame = QtWidgets.QFrame(self.centralwidget)
|
|
+ self.sinkFrame.setMinimumSize(Qt.QSize(0, 550))
|
|
+ self.sinkFrame.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
|
+ self.sinkFrame.setFrameShadow(QtWidgets.QFrame.Raised)
|
|
self.sinkFrame.setObjectName("sinkFrame")
|
|
- self.horizontalLayout_2 = QtGui.QHBoxLayout(self.sinkFrame)
|
|
+ self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.sinkFrame)
|
|
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
|
- self.sinkLayout = QtGui.QHBoxLayout()
|
|
+ self.sinkLayout = QtWidgets.QHBoxLayout()
|
|
self.sinkLayout.setObjectName("sinkLayout")
|
|
self.horizontalLayout_2.addLayout(self.sinkLayout)
|
|
self.verticalLayout.addWidget(self.sinkFrame)
|
|
- self.horizontalLayout = QtGui.QHBoxLayout()
|
|
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
|
|
self.horizontalLayout.setObjectName("horizontalLayout")
|
|
- self.sysBox = QtGui.QGroupBox(self.centralwidget)
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
|
|
+ self.sysBox = QtWidgets.QGroupBox(self.centralwidget)
|
|
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.sysBox.sizePolicy().hasHeightForWidth())
|
|
self.sysBox.setSizePolicy(sizePolicy)
|
|
- self.sysBox.setMinimumSize(QtCore.QSize(0, 0))
|
|
- self.sysBox.setMaximumSize(QtCore.QSize(16777215, 120))
|
|
- self.sysBox.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
|
+ self.sysBox.setMinimumSize(Qt.QSize(0, 0))
|
|
+ self.sysBox.setMaximumSize(Qt.QSize(16777215, 120))
|
|
+ self.sysBox.setAlignment(Qt.Qt.AlignLeading|Qt.Qt.AlignLeft|Qt.Qt.AlignTop)
|
|
self.sysBox.setObjectName("sysBox")
|
|
- self.gridLayout_2 = QtGui.QGridLayout(self.sysBox)
|
|
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.sysBox)
|
|
self.gridLayout_2.setObjectName("gridLayout_2")
|
|
- self.sampleRateEdit = QtGui.QLineEdit(self.sysBox)
|
|
- self.sampleRateEdit.setMaximumSize(QtCore.QSize(100, 16777215))
|
|
+ self.sampleRateEdit = QtWidgets.QLineEdit(self.sysBox)
|
|
+ self.sampleRateEdit.setMaximumSize(Qt.QSize(100, 16777215))
|
|
self.sampleRateEdit.setObjectName("sampleRateEdit")
|
|
self.gridLayout_2.addWidget(self.sampleRateEdit, 0, 3, 1, 1)
|
|
- self.sampleRateLabel = QtGui.QLabel(self.sysBox)
|
|
+ self.sampleRateLabel = QtWidgets.QLabel(self.sysBox)
|
|
self.sampleRateLabel.setObjectName("sampleRateLabel")
|
|
self.gridLayout_2.addWidget(self.sampleRateLabel, 0, 2, 1, 1)
|
|
self.horizontalLayout.addWidget(self.sysBox)
|
|
- self.rxBox = QtGui.QGroupBox(self.centralwidget)
|
|
- self.rxBox.setMaximumSize(QtCore.QSize(16777215, 120))
|
|
- self.rxBox.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
|
+ self.rxBox = QtWidgets.QGroupBox(self.centralwidget)
|
|
+ self.rxBox.setMaximumSize(Qt.QSize(16777215, 120))
|
|
+ self.rxBox.setAlignment(Qt.Qt.AlignLeading|Qt.Qt.AlignLeft|Qt.Qt.AlignTop)
|
|
self.rxBox.setObjectName("rxBox")
|
|
- self.gridLayout_3 = QtGui.QGridLayout(self.rxBox)
|
|
+ self.gridLayout_3 = QtWidgets.QGridLayout(self.rxBox)
|
|
self.gridLayout_3.setObjectName("gridLayout_3")
|
|
- self.alphaLabel = QtGui.QLabel(self.rxBox)
|
|
+ self.alphaLabel = QtWidgets.QLabel(self.rxBox)
|
|
self.alphaLabel.setObjectName("alphaLabel")
|
|
self.gridLayout_3.addWidget(self.alphaLabel, 1, 0, 1, 1)
|
|
- self.alphaEdit = QtGui.QLineEdit(self.rxBox)
|
|
- self.alphaEdit.setMaximumSize(QtCore.QSize(100, 16777215))
|
|
+ self.alphaEdit = QtWidgets.QLineEdit(self.rxBox)
|
|
+ self.alphaEdit.setMaximumSize(Qt.QSize(100, 16777215))
|
|
self.alphaEdit.setObjectName("alphaEdit")
|
|
self.gridLayout_3.addWidget(self.alphaEdit, 1, 1, 1, 1)
|
|
- self.gainMuLabel = QtGui.QLabel(self.rxBox)
|
|
+ self.gainMuLabel = QtWidgets.QLabel(self.rxBox)
|
|
self.gainMuLabel.setObjectName("gainMuLabel")
|
|
self.gridLayout_3.addWidget(self.gainMuLabel, 0, 0, 1, 1)
|
|
- self.gainMuEdit = QtGui.QLineEdit(self.rxBox)
|
|
- self.gainMuEdit.setMaximumSize(QtCore.QSize(100, 16777215))
|
|
+ self.gainMuEdit = QtWidgets.QLineEdit(self.rxBox)
|
|
+ self.gainMuEdit.setMaximumSize(Qt.QSize(100, 16777215))
|
|
self.gainMuEdit.setObjectName("gainMuEdit")
|
|
self.gridLayout_3.addWidget(self.gainMuEdit, 0, 1, 1, 1)
|
|
self.horizontalLayout.addWidget(self.rxBox)
|
|
- self.channelModeBox = QtGui.QGroupBox(self.centralwidget)
|
|
- self.channelModeBox.setMaximumSize(QtCore.QSize(16777215, 120))
|
|
- self.channelModeBox.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
|
+ self.channelModeBox = QtWidgets.QGroupBox(self.centralwidget)
|
|
+ self.channelModeBox.setMaximumSize(Qt.QSize(16777215, 120))
|
|
+ self.channelModeBox.setAlignment(Qt.Qt.AlignLeading|Qt.Qt.AlignLeft|Qt.Qt.AlignTop)
|
|
self.channelModeBox.setObjectName("channelModeBox")
|
|
- self.gridLayout = QtGui.QGridLayout(self.channelModeBox)
|
|
- self.gridLayout.setSizeConstraint(QtGui.QLayout.SetMinimumSize)
|
|
+ self.gridLayout = QtWidgets.QGridLayout(self.channelModeBox)
|
|
+ self.gridLayout.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize)
|
|
self.gridLayout.setObjectName("gridLayout")
|
|
- self.snrLabel = QtGui.QLabel(self.channelModeBox)
|
|
+ self.snrLabel = QtWidgets.QLabel(self.channelModeBox)
|
|
self.snrLabel.setObjectName("snrLabel")
|
|
self.gridLayout.addWidget(self.snrLabel, 0, 1, 1, 1)
|
|
- self.snrEdit = QtGui.QLineEdit(self.channelModeBox)
|
|
- self.snrEdit.setMaximumSize(QtCore.QSize(100, 16777215))
|
|
+ self.snrEdit = QtWidgets.QLineEdit(self.channelModeBox)
|
|
+ self.snrEdit.setMaximumSize(Qt.QSize(100, 16777215))
|
|
self.snrEdit.setObjectName("snrEdit")
|
|
self.gridLayout.addWidget(self.snrEdit, 0, 2, 1, 1)
|
|
- self.freqLabel = QtGui.QLabel(self.channelModeBox)
|
|
+ self.freqLabel = QtWidgets.QLabel(self.channelModeBox)
|
|
self.freqLabel.setObjectName("freqLabel")
|
|
self.gridLayout.addWidget(self.freqLabel, 1, 1, 1, 1)
|
|
- self.freqEdit = QtGui.QLineEdit(self.channelModeBox)
|
|
- self.freqEdit.setMaximumSize(QtCore.QSize(100, 16777215))
|
|
+ self.freqEdit = QtWidgets.QLineEdit(self.channelModeBox)
|
|
+ self.freqEdit.setMaximumSize(Qt.QSize(100, 16777215))
|
|
self.freqEdit.setObjectName("freqEdit")
|
|
self.gridLayout.addWidget(self.freqEdit, 1, 2, 1, 1)
|
|
- self.timeLabel = QtGui.QLabel(self.channelModeBox)
|
|
+ self.timeLabel = QtWidgets.QLabel(self.channelModeBox)
|
|
self.timeLabel.setObjectName("timeLabel")
|
|
self.gridLayout.addWidget(self.timeLabel, 2, 1, 1, 1)
|
|
- self.timeEdit = QtGui.QLineEdit(self.channelModeBox)
|
|
- self.timeEdit.setMaximumSize(QtCore.QSize(100, 16777215))
|
|
+ self.timeEdit = QtWidgets.QLineEdit(self.channelModeBox)
|
|
+ self.timeEdit.setMaximumSize(Qt.QSize(100, 16777215))
|
|
self.timeEdit.setObjectName("timeEdit")
|
|
self.gridLayout.addWidget(self.timeEdit, 2, 2, 1, 1)
|
|
self.horizontalLayout.addWidget(self.channelModeBox)
|
|
- spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
|
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
|
self.horizontalLayout.addItem(spacerItem)
|
|
- self.verticalLayout_2 = QtGui.QVBoxLayout()
|
|
+ self.verticalLayout_2 = QtWidgets.QVBoxLayout()
|
|
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
|
- spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
|
|
+ spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
|
self.verticalLayout_2.addItem(spacerItem1)
|
|
- self.pauseButton = QtGui.QPushButton(self.centralwidget)
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
|
|
+ self.pauseButton = QtWidgets.QPushButton(self.centralwidget)
|
|
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.pauseButton.sizePolicy().hasHeightForWidth())
|
|
self.pauseButton.setSizePolicy(sizePolicy)
|
|
- self.pauseButton.setMaximumSize(QtCore.QSize(80, 16777215))
|
|
+ self.pauseButton.setMaximumSize(Qt.QSize(80, 16777215))
|
|
self.pauseButton.setObjectName("pauseButton")
|
|
self.verticalLayout_2.addWidget(self.pauseButton)
|
|
- self.closeButton = QtGui.QPushButton(self.centralwidget)
|
|
- self.closeButton.setMaximumSize(QtCore.QSize(80, 16777215))
|
|
+ self.closeButton = QtWidgets.QPushButton(self.centralwidget)
|
|
+ self.closeButton.setMaximumSize(Qt.QSize(80, 16777215))
|
|
self.closeButton.setObjectName("closeButton")
|
|
self.verticalLayout_2.addWidget(self.closeButton)
|
|
self.horizontalLayout.addLayout(self.verticalLayout_2)
|
|
self.verticalLayout.addLayout(self.horizontalLayout)
|
|
DigitalWindow.setCentralWidget(self.centralwidget)
|
|
- self.menubar = QtGui.QMenuBar(DigitalWindow)
|
|
- self.menubar.setGeometry(QtCore.QRect(0, 0, 1236, 23))
|
|
+ self.menubar = QtWidgets.QMenuBar(DigitalWindow)
|
|
+ self.menubar.setGeometry(Qt.QRect(0, 0, 1236, 23))
|
|
self.menubar.setObjectName("menubar")
|
|
- self.menuFile = QtGui.QMenu(self.menubar)
|
|
+ self.menuFile = QtWidgets.QMenu(self.menubar)
|
|
self.menuFile.setObjectName("menuFile")
|
|
DigitalWindow.setMenuBar(self.menubar)
|
|
- self.statusbar = QtGui.QStatusBar(DigitalWindow)
|
|
+ self.statusbar = QtWidgets.QStatusBar(DigitalWindow)
|
|
self.statusbar.setObjectName("statusbar")
|
|
DigitalWindow.setStatusBar(self.statusbar)
|
|
- self.actionExit = QtGui.QAction(DigitalWindow)
|
|
+ self.actionExit = QtWidgets.QAction(DigitalWindow)
|
|
self.actionExit.setObjectName("actionExit")
|
|
self.menuFile.addAction(self.actionExit)
|
|
self.menubar.addAction(self.menuFile.menuAction())
|
|
|
|
self.retranslateUi(DigitalWindow)
|
|
- QtCore.QObject.connect(self.closeButton, QtCore.SIGNAL("clicked()"), DigitalWindow.close)
|
|
- QtCore.QObject.connect(self.actionExit, QtCore.SIGNAL("triggered()"), DigitalWindow.close)
|
|
- QtCore.QMetaObject.connectSlotsByName(DigitalWindow)
|
|
+ Qt.QObject.connect(self.closeButton, Qt.SIGNAL("clicked()"), DigitalWindow.close)
|
|
+ Qt.QObject.connect(self.actionExit, Qt.SIGNAL("triggered()"), DigitalWindow.close)
|
|
+ Qt.QMetaObject.connectSlotsByName(DigitalWindow)
|
|
DigitalWindow.setTabOrder(self.snrEdit, self.freqEdit)
|
|
DigitalWindow.setTabOrder(self.freqEdit, self.timeEdit)
|
|
|
|
def retranslateUi(self, DigitalWindow):
|
|
- DigitalWindow.setWindowTitle(QtGui.QApplication.translate("DigitalWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.sysBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "System Parameters", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.sampleRateLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Sample Rate (sps)", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.rxBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "Receiver Parameters", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.alphaLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Alpha", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.gainMuLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Gain mu", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.channelModeBox.setTitle(QtGui.QApplication.translate("DigitalWindow", "Channel Model Parameters", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.snrLabel.setText(QtGui.QApplication.translate("DigitalWindow", "SNR (dB)", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.freqLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Frequency Offset (Hz)", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.timeLabel.setText(QtGui.QApplication.translate("DigitalWindow", "Timing Offset", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.pauseButton.setText(QtGui.QApplication.translate("DigitalWindow", "Pause", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.closeButton.setText(QtGui.QApplication.translate("DigitalWindow", "Close", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.menuFile.setTitle(QtGui.QApplication.translate("DigitalWindow", "&File", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.actionExit.setText(QtGui.QApplication.translate("DigitalWindow", "E&xit", None, QtGui.QApplication.UnicodeUTF8))
|
|
+ DigitalWindow.setWindowTitle(QtWidgets.QApplication.translate("DigitalWindow", "MainWindow", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.sysBox.setTitle(QtWidgets.QApplication.translate("DigitalWindow", "System Parameters", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.sampleRateLabel.setText(QtWidgets.QApplication.translate("DigitalWindow", "Sample Rate (sps)", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.rxBox.setTitle(QtWidgets.QApplication.translate("DigitalWindow", "Receiver Parameters", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.alphaLabel.setText(QtWidgets.QApplication.translate("DigitalWindow", "Alpha", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.gainMuLabel.setText(QtWidgets.QApplication.translate("DigitalWindow", "Gain mu", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.channelModeBox.setTitle(QtWidgets.QApplication.translate("DigitalWindow", "Channel Model Parameters", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.snrLabel.setText(QtWidgets.QApplication.translate("DigitalWindow", "SNR (dB)", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.freqLabel.setText(QtWidgets.QApplication.translate("DigitalWindow", "Frequency Offset (Hz)", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.timeLabel.setText(QtWidgets.QApplication.translate("DigitalWindow", "Timing Offset", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.pauseButton.setText(QtWidgets.QApplication.translate("DigitalWindow", "Pause", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.closeButton.setText(QtWidgets.QApplication.translate("DigitalWindow", "Close", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.menuFile.setTitle(QtWidgets.QApplication.translate("DigitalWindow", "&File", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.actionExit.setText(QtWidgets.QApplication.translate("DigitalWindow", "E&xit", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
|
|
diff --git a/gr-qtgui/apps/uhd_display.py b/gr-qtgui/apps/uhd_display.py
|
|
index 0e0c8a177d..e564e58c76 100755
|
|
--- a/gr-qtgui/apps/uhd_display.py
|
|
+++ b/gr-qtgui/apps/uhd_display.py
|
|
@@ -1,6 +1,6 @@
|
|
#!/usr/bin/env python
|
|
#
|
|
-# Copyright 2009,2011 Free Software Foundation, Inc.
|
|
+# Copyright 2009,2011,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -31,10 +31,10 @@ 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."
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
@@ -50,10 +50,10 @@ except ImportError:
|
|
# ////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
-class main_window(QtGui.QMainWindow):
|
|
+class main_window(QtWidgets.QMainWindow):
|
|
def __init__(self, snk, fg, parent=None):
|
|
|
|
- QtGui.QWidget.__init__(self, parent)
|
|
+ QtWidgets.QWidget.__init__(self, parent)
|
|
self.gui = Ui_MainWindow()
|
|
self.gui.setupUi(self)
|
|
|
|
@@ -62,28 +62,20 @@ class main_window(QtGui.QMainWindow):
|
|
# Add the qtsnk widgets to the layout box
|
|
self.gui.sinkLayout.addWidget(snk)
|
|
|
|
- self.gui.dcGainEdit.setText(QtCore.QString("%1").arg(0.001))
|
|
+ self.gui.dcGainEdit.setText("{0}".format(0.001))
|
|
|
|
# Connect up some signals
|
|
- self.connect(self.gui.pauseButton, QtCore.SIGNAL("clicked()"),
|
|
- self.pauseFg)
|
|
- self.connect(self.gui.frequencyEdit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.frequencyEditText)
|
|
- self.connect(self.gui.gainEdit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.gainEditText)
|
|
- self.connect(self.gui.bandwidthEdit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.bandwidthEditText)
|
|
- self.connect(self.gui.amplifierEdit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.amplifierEditText)
|
|
-
|
|
- self.connect(self.gui.actionSaveData, QtCore.SIGNAL("activated()"),
|
|
- self.saveData)
|
|
- self.gui.actionSaveData.setShortcut(QtGui.QKeySequence.Save)
|
|
-
|
|
- self.connect(self.gui.dcGainEdit, QtCore.SIGNAL("editingFinished()"),
|
|
- self.dcGainEditText)
|
|
- self.connect(self.gui.dcCancelCheckBox, QtCore.SIGNAL("clicked(bool)"),
|
|
- self.dcCancelClicked)
|
|
+ self.gui.pauseButton.clicked.connect(self.pauseFg)
|
|
+ self.gui.frequencyEdit.editingFinished.connect(self.frequencyEditText)
|
|
+ self.gui.gainEdit.editingFinished.connect(self.gainEditText)
|
|
+ self.gui.bandwidthEdit.editingFinished.connect(self.bandwidthEditText)
|
|
+ self.gui.amplifierEdit.editingFinished.connect(self.amplifierEditText)
|
|
+
|
|
+ self.gui.actionSaveData.activated.connect(self.saveData)
|
|
+ self.gui.actionSaveData.setShortcut(QtWidgets.QKeySequence.Save)
|
|
+
|
|
+ self.gui.dcGainEdit.editingFinished.connect(self.dcGainEditText)
|
|
+ self.gui.dcCancelCheckBox.clicked.connect(self.dcCancelClicked)
|
|
|
|
def pauseFg(self):
|
|
if(self.gui.pauseButton.text() == "Pause"):
|
|
@@ -99,20 +91,20 @@ class main_window(QtGui.QMainWindow):
|
|
def set_frequency(self, freq):
|
|
self.freq = freq
|
|
sfreq = eng_notation.num_to_str(self.freq)
|
|
- self.gui.frequencyEdit.setText(QtCore.QString("%1").arg(sfreq))
|
|
+ self.gui.frequencyEdit.setText("{0}".format(sfreq))
|
|
|
|
def set_gain(self, gain):
|
|
self.gain = gain
|
|
- self.gui.gainEdit.setText(QtCore.QString("%1").arg(self.gain))
|
|
+ self.gui.gainEdit.setText("{0}".format(self.gain))
|
|
|
|
def set_bandwidth(self, bw):
|
|
self.bw = bw
|
|
sbw = eng_notation.num_to_str(self.bw)
|
|
- self.gui.bandwidthEdit.setText(QtCore.QString("%1").arg(sbw))
|
|
+ self.gui.bandwidthEdit.setText("{0}".format(sbw))
|
|
|
|
def set_amplifier(self, amp):
|
|
self.amp = amp
|
|
- self.gui.amplifierEdit.setText(QtCore.QString("%1").arg(self.amp))
|
|
+ self.gui.amplifierEdit.setText("{0}".format(self.amp))
|
|
|
|
|
|
# Functions called when signals are triggered in the GUI
|
|
@@ -149,7 +141,7 @@ class main_window(QtGui.QMainWindow):
|
|
pass
|
|
|
|
def saveData(self):
|
|
- fileName = QtGui.QFileDialog.getSaveFileName(self, "Save data to file", ".");
|
|
+ fileName = QtWidgets.QFileDialog.getSaveFileName(self, "Save data to file", ".");
|
|
if(len(fileName)):
|
|
self.fg.save_to_file(str(fileName))
|
|
|
|
@@ -170,7 +162,7 @@ class my_top_block(gr.top_block):
|
|
self.options = options
|
|
self.show_debug_info = True
|
|
|
|
- self.qapp = QtGui.QApplication(sys.argv)
|
|
+ self.qapp = QtWidgets.QApplication(sys.argv)
|
|
|
|
self.u = uhd.usrp_source(device_addr=options.address, stream_args=uhd.stream_args('fc32'))
|
|
|
|
@@ -218,8 +210,8 @@ class my_top_block(gr.top_block):
|
|
|
|
# Get the reference pointer to the SpectrumDisplayForm QWidget
|
|
# Wrap the pointer as a PyQt SIP object
|
|
- # This can now be manipulated as a PyQt4.QtGui.QWidget
|
|
- self.pysink = sip.wrapinstance(self.snk.pyqwidget(), QtGui.QWidget)
|
|
+ # This can now be manipulated as a PyQt5.QtWidgets.QWidget
|
|
+ self.pysink = sip.wrapinstance(self.snk.pyqwidget(), QtWidgets.QWidget)
|
|
|
|
self.main_win = main_window(self.pysink, self)
|
|
|
|
diff --git a/gr-qtgui/apps/usrp_display_qtgui.py b/gr-qtgui/apps/usrp_display_qtgui.py
|
|
index 4c9de3a53c..89591af5fc 100644
|
|
--- a/gr-qtgui/apps/usrp_display_qtgui.py
|
|
+++ b/gr-qtgui/apps/usrp_display_qtgui.py
|
|
@@ -3,189 +3,189 @@
|
|
# Form implementation generated from reading ui file 'usrp_display_qtgui.ui'
|
|
#
|
|
# Created: Thu Jul 16 22:06:24 2009
|
|
-# by: PyQt4 UI code generator 4.4.3
|
|
+# by: PyQt5 UI code generator 4.4.3
|
|
#
|
|
# WARNING! All changes made in this file will be lost!
|
|
|
|
-from PyQt4 import QtCore, QtGui
|
|
+from PyQt5 import Qt, QtWidgets
|
|
|
|
class Ui_MainWindow(object):
|
|
def setupUi(self, MainWindow):
|
|
MainWindow.setObjectName("MainWindow")
|
|
MainWindow.resize(820, 774)
|
|
- self.centralwidget = QtGui.QWidget(MainWindow)
|
|
+ self.centralwidget = QtWidgets.QWidget(MainWindow)
|
|
self.centralwidget.setObjectName("centralwidget")
|
|
- self.gridLayout_2 = QtGui.QGridLayout(self.centralwidget)
|
|
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
|
|
self.gridLayout_2.setObjectName("gridLayout_2")
|
|
- self.horizontalLayout_2 = QtGui.QHBoxLayout()
|
|
+ self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
|
|
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
|
- self.groupBox = QtGui.QGroupBox(self.centralwidget)
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
|
+ self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
|
|
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth())
|
|
self.groupBox.setSizePolicy(sizePolicy)
|
|
- self.groupBox.setMinimumSize(QtCore.QSize(240, 150))
|
|
- self.groupBox.setMaximumSize(QtCore.QSize(240, 16777215))
|
|
+ self.groupBox.setMinimumSize(Qt.QSize(240, 150))
|
|
+ self.groupBox.setMaximumSize(Qt.QSize(240, 16777215))
|
|
self.groupBox.setObjectName("groupBox")
|
|
- self.formLayoutWidget = QtGui.QWidget(self.groupBox)
|
|
- self.formLayoutWidget.setGeometry(QtCore.QRect(10, 20, 221, 124))
|
|
+ self.formLayoutWidget = QtWidgets.QWidget(self.groupBox)
|
|
+ self.formLayoutWidget.setGeometry(Qt.QRect(10, 20, 221, 124))
|
|
self.formLayoutWidget.setObjectName("formLayoutWidget")
|
|
- self.formLayout = QtGui.QFormLayout(self.formLayoutWidget)
|
|
+ self.formLayout = QtWidgets.QFormLayout(self.formLayoutWidget)
|
|
self.formLayout.setObjectName("formLayout")
|
|
- self.frequencyLabel = QtGui.QLabel(self.formLayoutWidget)
|
|
+ self.frequencyLabel = QtWidgets.QLabel(self.formLayoutWidget)
|
|
self.frequencyLabel.setObjectName("frequencyLabel")
|
|
- self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.frequencyLabel)
|
|
- self.gainLabel = QtGui.QLabel(self.formLayoutWidget)
|
|
+ self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.frequencyLabel)
|
|
+ self.gainLabel = QtWidgets.QLabel(self.formLayoutWidget)
|
|
self.gainLabel.setObjectName("gainLabel")
|
|
- self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.gainLabel)
|
|
- self.bandwidthLabel = QtGui.QLabel(self.formLayoutWidget)
|
|
+ self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.gainLabel)
|
|
+ self.bandwidthLabel = QtWidgets.QLabel(self.formLayoutWidget)
|
|
self.bandwidthLabel.setObjectName("bandwidthLabel")
|
|
- self.formLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.bandwidthLabel)
|
|
- self.frequencyEdit = QtGui.QLineEdit(self.formLayoutWidget)
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
|
+ self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.bandwidthLabel)
|
|
+ self.frequencyEdit = QtWidgets.QLineEdit(self.formLayoutWidget)
|
|
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.frequencyEdit.sizePolicy().hasHeightForWidth())
|
|
self.frequencyEdit.setSizePolicy(sizePolicy)
|
|
- self.frequencyEdit.setMinimumSize(QtCore.QSize(120, 26))
|
|
+ self.frequencyEdit.setMinimumSize(Qt.QSize(120, 26))
|
|
self.frequencyEdit.setObjectName("frequencyEdit")
|
|
- self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.frequencyEdit)
|
|
- self.gainEdit = QtGui.QLineEdit(self.formLayoutWidget)
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
|
+ self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.frequencyEdit)
|
|
+ self.gainEdit = QtWidgets.QLineEdit(self.formLayoutWidget)
|
|
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.gainEdit.sizePolicy().hasHeightForWidth())
|
|
self.gainEdit.setSizePolicy(sizePolicy)
|
|
- self.gainEdit.setMinimumSize(QtCore.QSize(120, 26))
|
|
+ self.gainEdit.setMinimumSize(Qt.QSize(120, 26))
|
|
self.gainEdit.setObjectName("gainEdit")
|
|
- self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.gainEdit)
|
|
- self.bandwidthEdit = QtGui.QLineEdit(self.formLayoutWidget)
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
|
+ self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.gainEdit)
|
|
+ self.bandwidthEdit = QtWidgets.QLineEdit(self.formLayoutWidget)
|
|
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.bandwidthEdit.sizePolicy().hasHeightForWidth())
|
|
self.bandwidthEdit.setSizePolicy(sizePolicy)
|
|
- self.bandwidthEdit.setMinimumSize(QtCore.QSize(120, 26))
|
|
+ self.bandwidthEdit.setMinimumSize(Qt.QSize(120, 26))
|
|
self.bandwidthEdit.setObjectName("bandwidthEdit")
|
|
- self.formLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.bandwidthEdit)
|
|
- self.amplifierLabel = QtGui.QLabel(self.formLayoutWidget)
|
|
+ self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.bandwidthEdit)
|
|
+ self.amplifierLabel = QtWidgets.QLabel(self.formLayoutWidget)
|
|
self.amplifierLabel.setObjectName("amplifierLabel")
|
|
- self.formLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.amplifierLabel)
|
|
- self.amplifierEdit = QtGui.QLineEdit(self.formLayoutWidget)
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
|
+ self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.amplifierLabel)
|
|
+ self.amplifierEdit = QtWidgets.QLineEdit(self.formLayoutWidget)
|
|
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.amplifierEdit.sizePolicy().hasHeightForWidth())
|
|
self.amplifierEdit.setSizePolicy(sizePolicy)
|
|
- self.amplifierEdit.setMinimumSize(QtCore.QSize(120, 26))
|
|
+ self.amplifierEdit.setMinimumSize(Qt.QSize(120, 26))
|
|
self.amplifierEdit.setObjectName("amplifierEdit")
|
|
- self.formLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.amplifierEdit)
|
|
+ self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.amplifierEdit)
|
|
self.horizontalLayout_2.addWidget(self.groupBox)
|
|
- self.frame_2 = QtGui.QFrame(self.centralwidget)
|
|
- self.frame_2.setMinimumSize(QtCore.QSize(200, 0))
|
|
- self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
|
|
- self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
|
|
+ self.frame_2 = QtWidgets.QFrame(self.centralwidget)
|
|
+ self.frame_2.setMinimumSize(Qt.QSize(200, 0))
|
|
+ self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
|
+ self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
|
|
self.frame_2.setObjectName("frame_2")
|
|
- self.verticalLayoutWidget = QtGui.QWidget(self.frame_2)
|
|
- self.verticalLayoutWidget.setGeometry(QtCore.QRect(10, -1, 191, 151))
|
|
+ self.verticalLayoutWidget = QtWidgets.QWidget(self.frame_2)
|
|
+ self.verticalLayoutWidget.setGeometry(Qt.QRect(10, -1, 191, 151))
|
|
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
|
|
- self.verticalLayout_3 = QtGui.QVBoxLayout(self.verticalLayoutWidget)
|
|
+ self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
|
|
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
|
- self.dcCancelCheckBox = QtGui.QCheckBox(self.verticalLayoutWidget)
|
|
+ self.dcCancelCheckBox = QtWidgets.QCheckBox(self.verticalLayoutWidget)
|
|
self.dcCancelCheckBox.setObjectName("dcCancelCheckBox")
|
|
self.verticalLayout_3.addWidget(self.dcCancelCheckBox)
|
|
- self.horizontalLayout = QtGui.QHBoxLayout()
|
|
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
|
|
self.horizontalLayout.setObjectName("horizontalLayout")
|
|
- self.dcGainLabel = QtGui.QLabel(self.verticalLayoutWidget)
|
|
+ self.dcGainLabel = QtWidgets.QLabel(self.verticalLayoutWidget)
|
|
self.dcGainLabel.setObjectName("dcGainLabel")
|
|
self.horizontalLayout.addWidget(self.dcGainLabel)
|
|
- self.dcGainEdit = QtGui.QLineEdit(self.verticalLayoutWidget)
|
|
+ self.dcGainEdit = QtWidgets.QLineEdit(self.verticalLayoutWidget)
|
|
self.dcGainEdit.setObjectName("dcGainEdit")
|
|
self.horizontalLayout.addWidget(self.dcGainEdit)
|
|
self.verticalLayout_3.addLayout(self.horizontalLayout)
|
|
- spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
|
|
+ spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
|
self.verticalLayout_3.addItem(spacerItem)
|
|
self.horizontalLayout_2.addWidget(self.frame_2)
|
|
- spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
|
+ spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
|
self.horizontalLayout_2.addItem(spacerItem1)
|
|
- self.verticalLayout = QtGui.QVBoxLayout()
|
|
+ self.verticalLayout = QtWidgets.QVBoxLayout()
|
|
self.verticalLayout.setObjectName("verticalLayout")
|
|
- spacerItem2 = QtGui.QSpacerItem(20, 80, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
|
|
+ spacerItem2 = QtWidgets.QSpacerItem(20, 80, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
|
self.verticalLayout.addItem(spacerItem2)
|
|
- self.pauseButton = QtGui.QPushButton(self.centralwidget)
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
|
+ self.pauseButton = QtWidgets.QPushButton(self.centralwidget)
|
|
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.pauseButton.sizePolicy().hasHeightForWidth())
|
|
self.pauseButton.setSizePolicy(sizePolicy)
|
|
self.pauseButton.setObjectName("pauseButton")
|
|
self.verticalLayout.addWidget(self.pauseButton)
|
|
- self.closeButton = QtGui.QPushButton(self.centralwidget)
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
|
+ self.closeButton = QtWidgets.QPushButton(self.centralwidget)
|
|
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.closeButton.sizePolicy().hasHeightForWidth())
|
|
self.closeButton.setSizePolicy(sizePolicy)
|
|
- self.closeButton.setMinimumSize(QtCore.QSize(75, 0))
|
|
+ self.closeButton.setMinimumSize(Qt.QSize(75, 0))
|
|
self.closeButton.setObjectName("closeButton")
|
|
self.verticalLayout.addWidget(self.closeButton)
|
|
self.horizontalLayout_2.addLayout(self.verticalLayout)
|
|
self.gridLayout_2.addLayout(self.horizontalLayout_2, 1, 0, 1, 1)
|
|
- self.verticalLayout_2 = QtGui.QVBoxLayout()
|
|
+ self.verticalLayout_2 = QtWidgets.QVBoxLayout()
|
|
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
|
- self.frame = QtGui.QFrame(self.centralwidget)
|
|
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
|
|
+ self.frame = QtWidgets.QFrame(self.centralwidget)
|
|
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(1)
|
|
sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
|
|
self.frame.setSizePolicy(sizePolicy)
|
|
- self.frame.setMinimumSize(QtCore.QSize(800, 550))
|
|
- self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
|
|
- self.frame.setFrameShadow(QtGui.QFrame.Raised)
|
|
+ self.frame.setMinimumSize(Qt.QSize(800, 550))
|
|
+ self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
|
+ self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
|
|
self.frame.setObjectName("frame")
|
|
- self.gridLayout = QtGui.QGridLayout(self.frame)
|
|
+ self.gridLayout = QtWidgets.QGridLayout(self.frame)
|
|
self.gridLayout.setObjectName("gridLayout")
|
|
- self.sinkLayout = QtGui.QHBoxLayout()
|
|
+ self.sinkLayout = QtWidgets.QHBoxLayout()
|
|
self.sinkLayout.setObjectName("sinkLayout")
|
|
self.gridLayout.addLayout(self.sinkLayout, 0, 0, 1, 1)
|
|
self.verticalLayout_2.addWidget(self.frame)
|
|
self.gridLayout_2.addLayout(self.verticalLayout_2, 0, 0, 1, 1)
|
|
MainWindow.setCentralWidget(self.centralwidget)
|
|
- self.menubar = QtGui.QMenuBar(MainWindow)
|
|
- self.menubar.setGeometry(QtCore.QRect(0, 0, 820, 24))
|
|
+ self.menubar = QtWidgets.QMenuBar(MainWindow)
|
|
+ self.menubar.setGeometry(Qt.QRect(0, 0, 820, 24))
|
|
self.menubar.setObjectName("menubar")
|
|
- self.menuFile = QtGui.QMenu(self.menubar)
|
|
+ self.menuFile = QtWidgets.QMenu(self.menubar)
|
|
self.menuFile.setObjectName("menuFile")
|
|
MainWindow.setMenuBar(self.menubar)
|
|
- self.statusbar = QtGui.QStatusBar(MainWindow)
|
|
+ self.statusbar = QtWidgets.QStatusBar(MainWindow)
|
|
self.statusbar.setObjectName("statusbar")
|
|
MainWindow.setStatusBar(self.statusbar)
|
|
- self.actionExit = QtGui.QAction(MainWindow)
|
|
+ self.actionExit = QtWidgets.QAction(MainWindow)
|
|
self.actionExit.setObjectName("actionExit")
|
|
- self.actionSaveData = QtGui.QAction(MainWindow)
|
|
+ self.actionSaveData = QtWidgets.QAction(MainWindow)
|
|
self.actionSaveData.setObjectName("actionSaveData")
|
|
self.menuFile.addAction(self.actionSaveData)
|
|
self.menuFile.addAction(self.actionExit)
|
|
self.menubar.addAction(self.menuFile.menuAction())
|
|
|
|
self.retranslateUi(MainWindow)
|
|
- QtCore.QObject.connect(self.closeButton, QtCore.SIGNAL("clicked()"), MainWindow.close)
|
|
- QtCore.QObject.connect(self.actionExit, QtCore.SIGNAL("triggered()"), MainWindow.close)
|
|
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
|
+ Qt.QObject.connect(self.closeButton, Qt.SIGNAL("clicked()"), MainWindow.close)
|
|
+ Qt.QObject.connect(self.actionExit, Qt.SIGNAL("triggered()"), MainWindow.close)
|
|
+ Qt.QMetaObject.connectSlotsByName(MainWindow)
|
|
|
|
def retranslateUi(self, MainWindow):
|
|
- MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "USRP Display", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.groupBox.setTitle(QtGui.QApplication.translate("MainWindow", "Receiver Parameters", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.frequencyLabel.setText(QtGui.QApplication.translate("MainWindow", "Frequency (Hz)", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.gainLabel.setText(QtGui.QApplication.translate("MainWindow", "RF Gain", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.bandwidthLabel.setText(QtGui.QApplication.translate("MainWindow", "Bandwidth", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.amplifierLabel.setText(QtGui.QApplication.translate("MainWindow", "Amplifier", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.dcCancelCheckBox.setText(QtGui.QApplication.translate("MainWindow", "Cancel DC", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.dcGainLabel.setText(QtGui.QApplication.translate("MainWindow", "DC Canceller Gain", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.pauseButton.setText(QtGui.QApplication.translate("MainWindow", "Pause", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.closeButton.setText(QtGui.QApplication.translate("MainWindow", "Close", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.menuFile.setTitle(QtGui.QApplication.translate("MainWindow", "&File", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.actionExit.setText(QtGui.QApplication.translate("MainWindow", "E&xit", None, QtGui.QApplication.UnicodeUTF8))
|
|
- self.actionSaveData.setText(QtGui.QApplication.translate("MainWindow", "&Save Data", None, QtGui.QApplication.UnicodeUTF8))
|
|
+ MainWindow.setWindowTitle(QtWidgets.QApplication.translate("MainWindow", "USRP Display", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.groupBox.setTitle(QtWidgets.QApplication.translate("MainWindow", "Receiver Parameters", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.frequencyLabel.setText(QtWidgets.QApplication.translate("MainWindow", "Frequency (Hz)", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.gainLabel.setText(QtWidgets.QApplication.translate("MainWindow", "RF Gain", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.bandwidthLabel.setText(QtWidgets.QApplication.translate("MainWindow", "Bandwidth", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.amplifierLabel.setText(QtWidgets.QApplication.translate("MainWindow", "Amplifier", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.dcCancelCheckBox.setText(QtWidgets.QApplication.translate("MainWindow", "Cancel DC", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.dcGainLabel.setText(QtWidgets.QApplication.translate("MainWindow", "DC Canceller Gain", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.pauseButton.setText(QtWidgets.QApplication.translate("MainWindow", "Pause", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.closeButton.setText(QtWidgets.QApplication.translate("MainWindow", "Close", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.menuFile.setTitle(QtWidgets.QApplication.translate("MainWindow", "&File", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.actionExit.setText(QtWidgets.QApplication.translate("MainWindow", "E&xit", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
+ self.actionSaveData.setText(QtWidgets.QApplication.translate("MainWindow", "&Save Data", None, QtWidgets.QApplication.UnicodeUTF8))
|
|
|
|
--
|
|
2.11.0
|
|
|
|
From b12439f3f600b9d0be03189e8a82310d9ceabdd6 Mon Sep 17 00:00:00 2001
|
|
From: "A. Maitland Bottoms" <bottoms@debian.org>
|
|
Date: Sun, 25 Feb 2018 13:27:38 -0500
|
|
Subject: [PATCH 21/22] gnuradio runtime ctrlport qt5
|
|
|
|
---
|
|
gnuradio-runtime/python/gnuradio/ctrlport/GrDataPlotter.py | 4 ++--
|
|
gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-monitor | 4 ++--
|
|
gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx | 4 ++--
|
|
3 files changed, 6 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/GrDataPlotter.py b/gnuradio-runtime/python/gnuradio/ctrlport/GrDataPlotter.py
|
|
index c5bfd0a8cb..6d78565b3b 100644
|
|
--- a/gnuradio-runtime/python/gnuradio/ctrlport/GrDataPlotter.py
|
|
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/GrDataPlotter.py
|
|
@@ -28,10 +28,10 @@ import sys, time, struct
|
|
|
|
try:
|
|
from gnuradio import qtgui
|
|
- from PyQt4 import QtGui, QtCore
|
|
+ from PyQt5 import QtGui, QtCore
|
|
import sip
|
|
except ImportError:
|
|
- print "Error: Program requires PyQt4 and gr-qtgui."
|
|
+ sys.stderr.write("Error: Program requires PyQt5 and gr-qtgui.\n")
|
|
sys.exit(1)
|
|
|
|
class GrDataPlotParent(gr.top_block, QtGui.QWidget):
|
|
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-monitor b/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-monitor
|
|
index c866776355..ce53c60c0e 100644
|
|
--- a/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-monitor
|
|
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/gr-ctrlport-monitor
|
|
@@ -20,8 +20,8 @@
|
|
# Boston, MA 02110-1301, USA.
|
|
#
|
|
|
|
-from PyQt4 import QtCore,Qt
|
|
-import PyQt4.QtGui as QtGui
|
|
+from PyQt5 import QtCore,Qt
|
|
+import PyQt5.QtGui as QtGui
|
|
import os, sys, time, struct
|
|
|
|
from gnuradio import gr, ctrlport
|
|
diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
|
|
index 15a2153a0f..a9e43bff41 100644
|
|
--- a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
|
|
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
|
|
@@ -46,8 +46,8 @@ except ImportError:
|
|
"Please check that they are installed and try again."
|
|
sys.exit(1)
|
|
|
|
-from PyQt4 import QtCore,Qt
|
|
-import PyQt4.QtGui as QtGui
|
|
+from PyQt5 import QtCore,Qt
|
|
+import PyQt5.QtGui as QtGui
|
|
import itertools
|
|
|
|
from gnuradio import gr, ctrlport
|
|
--
|
|
2.11.0
|
|
|
|
From 18f5edf38cc6a24836f943d6976d913a4f35cab3 Mon Sep 17 00:00:00 2001
|
|
From: "A. Maitland Bottoms" <bottoms@debian.org>
|
|
Date: Sun, 25 Feb 2018 13:28:05 -0500
|
|
Subject: [PATCH 22/22] gr uhd qt5
|
|
|
|
---
|
|
gr-uhd/apps/uhd_fft | 8 ++++----
|
|
gr-uhd/apps/uhd_siggen_gui | 10 +++++-----
|
|
2 files changed, 9 insertions(+), 9 deletions(-)
|
|
|
|
--- a/gr-uhd/apps/uhd_fft
|
|
+++ b/gr-uhd/apps/uhd_fft
|
|
@@ -40,7 +40,7 @@
|
|
import threading
|
|
import time
|
|
from distutils.version import StrictVersion
|
|
-from PyQt4 import Qt
|
|
+from PyQt5 import Qt
|
|
from gnuradio import eng_notation
|
|
from gnuradio import eng_arg
|
|
from gnuradio import gr
|
|
@@ -478,8 +478,8 @@
|
|
Go, go, go!
|
|
"""
|
|
args = setup_argparser().parse_args()
|
|
- if StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0"):
|
|
- Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster'))
|
|
+ #if StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0"):
|
|
+ # Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster'))
|
|
qapp = Qt.QApplication(sys.argv)
|
|
tb = uhd_fft(args)
|
|
tb.start()
|
|
@@ -487,7 +487,7 @@
|
|
def quitting():
|
|
tb.stop()
|
|
tb.wait()
|
|
- qapp.connect(qapp, Qt.SIGNAL("aboutToQuit()"), quitting)
|
|
+ qapp.aboutToQuit.connect(quitting)
|
|
qapp.exec_()
|
|
tb = None #to clean up Qt widgets
|
|
|
|
--- a/gr-uhd/apps/uhd_siggen_gui
|
|
+++ b/gr-uhd/apps/uhd_siggen_gui
|
|
@@ -38,8 +38,8 @@
|
|
import threading
|
|
import time
|
|
from distutils.version import StrictVersion
|
|
-from PyQt4 import Qt
|
|
-from PyQt4.QtCore import pyqtSlot
|
|
+from PyQt5 import Qt
|
|
+from PyQt5.QtCore import pyqtSlot
|
|
from gnuradio import analog
|
|
from gnuradio import eng_notation
|
|
from gnuradio import gr
|
|
@@ -448,14 +448,14 @@
|
|
""" Go, go, go! """
|
|
parser = setup_parser()
|
|
args = parser.parse_args()
|
|
- if StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0"):
|
|
- Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui', 'style', 'raster'))
|
|
+ #if StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0"):
|
|
+ # Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui', 'style', 'raster'))
|
|
qapp = Qt.QApplication(sys.argv)
|
|
siggen_gui = uhd_siggen_gui(args)
|
|
siggen_gui.show()
|
|
def quitting():
|
|
siggen_gui.stop()
|
|
- qapp.connect(qapp, Qt.SIGNAL("aboutToQuit()"), quitting)
|
|
+ qapp.aboutToQuit.connect(quitting)
|
|
qapp.exec_()
|
|
siggen_gui = None #to clean up Qt widgets
|
|
|
|
From af4ab4e0f745ef3d61effc71824b09d0c15d8b86 Mon Sep 17 00:00:00 2001
|
|
From: "A. Maitland Bottoms" <bottoms@debian.org>
|
|
Date: Mon, 26 Feb 2018 21:36:29 -0500
|
|
Subject: [PATCH] gr qtgui util
|
|
|
|
---
|
|
gr-qtgui/python/qtgui/util.py | 5 ++---
|
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/gr-qtgui/python/qtgui/util.py b/gr-qtgui/python/qtgui/util.py
|
|
index fffc482615..ca9f6f5035 100644
|
|
--- a/gr-qtgui/python/qtgui/util.py
|
|
+++ b/gr-qtgui/python/qtgui/util.py
|
|
@@ -1,7 +1,7 @@
|
|
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
-# Copyright 2016 Free Software Foundation, Inc.
|
|
+# Copyright 2016,2018 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
@@ -21,7 +21,7 @@
|
|
# Boston, MA 02110-1301, USA.
|
|
#
|
|
|
|
-from PyQt4 import Qt, QtCore, QtGui
|
|
+from PyQt5 import Qt, QtCore, QtGui, QtWidgets
|
|
from gnuradio import gr
|
|
|
|
def check_set_qss():
|
|
@@ -32,4 +32,3 @@ def check_set_qss():
|
|
app.setStyleSheet(open(qssfile).read())
|
|
except:
|
|
print "WARNING: bad QSS file, %s"%(qssfile)
|
|
-
|
|
--
|
|
2.11.0
|
|
|
|
From b65bf73bc174183d6aec476c2fb161a4911c2351 Mon Sep 17 00:00:00 2001
|
|
From: Vasil Velichkov <vvvelichkov@gmail.com>
|
|
Date: Thu, 11 Jan 2018 00:32:37 +0000
|
|
Subject: [PATCH 27/27] Fix AttributeError: 'NoneType' object has no attribute
|
|
'toByteArray'
|
|
|
|
Debian Bug #886807
|
|
---
|
|
gr-uhd/apps/uhd_fft | 6 +++---
|
|
gr-uhd/apps/uhd_siggen_gui | 4 ++--
|
|
grc/blocks/options.xml | 2 +-
|
|
grc/core/generator/flow_graph.tmpl | 2 +-
|
|
4 files changed, 7 insertions(+), 7 deletions(-)
|
|
|
|
--- a/gr-uhd/apps/uhd_fft
|
|
+++ b/gr-uhd/apps/uhd_fft
|
|
@@ -40,7 +40,7 @@
|
|
import threading
|
|
import time
|
|
from distutils.version import StrictVersion
|
|
-from PyQt5 import Qt
|
|
+from PyQt5 import Qt, QtCore
|
|
from gnuradio import eng_notation
|
|
from gnuradio import eng_arg
|
|
from gnuradio import gr
|
|
@@ -60,7 +60,7 @@
|
|
"""
|
|
def __init__(self, args):
|
|
gr.top_block.__init__(self, "UHD FFT")
|
|
- Qt.QWidget.__init__(self)
|
|
+ Qt.QWidget.__init__(self, args=args)
|
|
UHDApp.__init__(self, args=args, prefix="UHD FFT")
|
|
##################################################
|
|
# Init QT App
|
|
@@ -82,7 +82,7 @@
|
|
self.top_grid_layout = Qt.QGridLayout()
|
|
self.top_layout.addLayout(self.top_grid_layout)
|
|
self.settings = Qt.QSettings("GNU Radio", "uhd_fft")
|
|
- self.restoreGeometry(self.settings.value("geometry").toByteArray())
|
|
+ self.restoreGeometry(self.settings.value("geometry", type=QtCore.QByteArray))
|
|
|
|
##################################################
|
|
# Parameters
|
|
--- a/gr-uhd/apps/uhd_siggen_gui
|
|
+++ b/gr-uhd/apps/uhd_siggen_gui
|
|
@@ -39,7 +39,7 @@
|
|
import time
|
|
from distutils.version import StrictVersion
|
|
from PyQt5 import Qt
|
|
-from PyQt5.QtCore import pyqtSlot
|
|
+from PyQt5.QtCore import pyqtSlot, QByteArray
|
|
from gnuradio import analog
|
|
from gnuradio import eng_notation
|
|
from gnuradio import gr
|
|
@@ -85,7 +85,7 @@
|
|
self.top_grid_layout = Qt.QGridLayout()
|
|
self.top_layout.addLayout(self.top_grid_layout)
|
|
self.settings = Qt.QSettings("GNU Radio", "uhd_siggen_gui")
|
|
- self.restoreGeometry(self.settings.value("geometry").toByteArray())
|
|
+ self.restoreGeometry(self.settings.value("geometry", type=QByteArray))
|
|
|
|
##################################################
|
|
# Widgets + Controls
|
|
--- a/grc/blocks/options.xml
|
|
+++ b/grc/blocks/options.xml
|
|
@@ -16,7 +16,7 @@
|
|
import wx
|
|
#end if
|
|
#if $generate_options() == 'qt_gui'
|
|
-from PyQt5 import Qt
|
|
+from PyQt5 import Qt, QtCore
|
|
import sys
|
|
#end if
|
|
#if $generate_options() == 'bokeh_gui'
|
|
--- a/grc/core/generator/flow_graph.tmpl
|
|
+++ b/grc/core/generator/flow_graph.tmpl
|
|
@@ -122,7 +122,7 @@
|
|
self.top_layout.addLayout(self.top_grid_layout)
|
|
|
|
self.settings = Qt.QSettings("GNU Radio", "$class_name")
|
|
- self.restoreGeometry(self.settings.value("geometry"))
|
|
+ self.restoreGeometry(self.settings.value("geometry", type=QtCore.QByteArray))
|
|
|
|
#elif $generate_options == 'bokeh_gui'
|
|
|