diff options
author | Seth Hitefield <sdhitefield@gmail.com> | 2015-03-31 18:39:35 -0700 |
---|---|---|
committer | Tom Rondeau <tom@trondeau.com> | 2015-04-02 13:27:48 -0700 |
commit | cde6a28977dc2affddb76b6f7f1ffff822581c46 (patch) | |
tree | 18322d8d8aefd346dc30d3e5b428b871a8865caf /gr-qtgui/python | |
parent | 3061e4797af6d308c1f65efca3444923e6beb4fe (diff) |
qtgui: Initial removal of pyqwt. Replaced with pyqt4.
Diffstat (limited to 'gr-qtgui/python')
-rw-r--r-- | gr-qtgui/python/qtgui/CMakeLists.txt | 1 | ||||
-rw-r--r-- | gr-qtgui/python/qtgui/__init__.py | 3 | ||||
-rwxr-xr-x | gr-qtgui/python/qtgui/range.py | 105 |
3 files changed, 109 insertions, 0 deletions
diff --git a/gr-qtgui/python/qtgui/CMakeLists.txt b/gr-qtgui/python/qtgui/CMakeLists.txt index c3d83f6034..4fa4d0f484 100644 --- a/gr-qtgui/python/qtgui/CMakeLists.txt +++ b/gr-qtgui/python/qtgui/CMakeLists.txt @@ -22,6 +22,7 @@ include(GrPython) GR_PYTHON_INSTALL( FILES __init__.py + range.py DESTINATION ${GR_PYTHON_DIR}/gnuradio/qtgui COMPONENT "qtgui_python" ) diff --git a/gr-qtgui/python/qtgui/__init__.py b/gr-qtgui/python/qtgui/__init__.py index e9aeea7a86..d74d0f2a9e 100644 --- a/gr-qtgui/python/qtgui/__init__.py +++ b/gr-qtgui/python/qtgui/__init__.py @@ -26,9 +26,12 @@ Provides a GUI interface using the QT backend. # The presence of this file turns this directory into a Python package import os + try: from qtgui_swig import * except ImportError: dirname, filename = os.path.split(os.path.abspath(__file__)) __path__.append(os.path.join(dirname, "..", "..", "swig")) from qtgui_swig import * + +from range import Range diff --git a/gr-qtgui/python/qtgui/range.py b/gr-qtgui/python/qtgui/range.py new file mode 100755 index 0000000000..1d19818692 --- /dev/null +++ b/gr-qtgui/python/qtgui/range.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright 2015 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +from PyQt4 import Qt, QtCore, QtGui + + +class Range(QtGui.QWidget): + + def __init__(self, min, max, step, default, style): + QtGui.QWidget.__init__(self) + + self.min = min + self.max = max + self.step = step + self.default = default + + if style == "dial": + self.setupDial() + elif style == "slider": + self.setupSlider() + elif style == "counter": + self.setupCounter() + elif style == "counter_slider": + self.setupCounterSlider() + + + def setupCounterSlider(self): + """ Creates the range using a counter and slider """ + + layout = Qt.QHBoxLayout() + slider = QtGui.QSlider(QtCore.Qt.Horizontal, self) + slider.setFocusPolicy(QtCore.Qt.NoFocus) + slider.setRange(self.min, self.max) + slider.setPageStep(self.step) + slider.setSingleStep(self.step) + slider.setTracking(False) + slider.setInvertedControls(True) + layout.addWidget(slider) + + counter = QtGui.QDoubleSpinBox(self) + counter.setRange(self.min, self.max) + counter.setSingleStep(self.step) + counter.setDecimals(0) + layout.addWidget(counter) + + # Wire the events to each other + counter.valueChanged.connect(slider.setValue) + slider.valueChanged.connect(counter.setValue) + + self.setLayout(layout) + + def setupCounter(self): + """ Creates the range using a counter """ + + layout = Qt.QHBoxLayout() + counter = QtGui.QDoubleSpinBox(self) + counter.setRange(self.min, self.max) + counter.setSingleStep(self.step) + counter.setDecimals(0) + layout.addWidget(counter) + self.setLayout(layout) + + def setupSlider(self): + """ Creates the range using a slider """ + + layout = Qt.QHBoxLayout() + slider = QtGui.QSlider(QtCore.Qt.Horizontal, self) + slider.setFocusPolicy(QtCore.Qt.NoFocus) + slider.setRange(self.min, self.max) + slider.setPageStep(self.step) + slider.setSingleStep(self.step) + slider.setTracking(False) + slider.setInvertedControls(True) + layout.addWidget(slider) + self.setLayout(layout) + + def init_dial(self): + layout = Qt.QHBoxLayout() + dial = QtGui.QDial(self) + dial.setRange(min, max) + dial.setSingleStep(step) + dial.setNotchesVisible(True) + dial.setValue(init_value) + layout.addWidget(dial) + self.setLayout(layout) |