带有滑块的 GRC QT GUI 范围出现错误
Posted
技术标签:
【中文标题】带有滑块的 GRC QT GUI 范围出现错误【英文标题】:GRC QT GUI Range with slider presents error 【发布时间】:2022-01-01 13:30:38 【问题描述】:使用 GNU Radio Companion 3.9.4.0。
我的应用程序有一个“QT GUI Range”块。当小部件设置为“计数器+滑块”时,我收到错误
TypeError: setRange(self, int, int): argument 2 has unexpected type 'float'
这个条件的 Python 代码是,
self._rf_gain_win = RangeWidget(self._rf_gain_range, self.set_rf_gain, "RF Gain", "counter_slider", float, QtCore.Qt.Horizontal)
将小部件设置为“计数器”没有错误。现在同样的 Python 行是,
self._rf_gain_win = RangeWidget(self._rf_gain_range, self.set_rf_gain, "RF Gain", "counter", float, QtCore.Qt.Horizontal)
如何使用所需的滑块?
= = =
完整的错误信息是:
File "C:\Users\User1\Documents\Records\Software Defined Radio - SDR\GNU Radio\Flowgraphs\HackADay Tutorials\Video 02\Simple_AM_Rx_01_temp.py", line 100, in __init__
self._rf_gain_win = RangeWidget(self._rf_gain_range, self.set_rf_gain, "RF Gain", "counter_slider", float, QtCore.Qt.Horizontal)
File "C:\Users\User1\miniforge3\envs\gnuradio\lib\site-packages\gnuradio\qtgui\range.py", line 121, in __init__
self.d_widget = self.CounterSlider(self, self.range, self.notifyChanged, rangeType, orientation)
File "C:\Users\User1\miniforge3\envs\gnuradio\lib\site-packages\gnuradio\qtgui\range.py", line 262, in __init__
self.slider = RangeWidget.Slider(parent, ranges, self.sliderChanged, rangeType, orientation)
File "C:\Users\User1\miniforge3\envs\gnuradio\lib\site-packages\gnuradio\qtgui\range.py", line 161, in __init__
self.setRange(0, ranges.nsteps - 1)
TypeError: setRange(self, int, int): argument 2 has unexpected type 'float'
【问题讨论】:
错误消息应该告诉您对setRange
的调用在哪里。如果您将有问题的参数转换为 int
,会发生什么?
如果我理解您的问题,Python 代码是从 GRC 框图生成的。 “QT GUI Range”块具有所需范围和步骤的条目。无论我输入整数 100 还是浮点数 100.0,都会再次出现错误。我不确定要投射什么以及在哪里投射(在 GUI 块中?)来尝试你的建议。
请提供完整的错误信息,应该是几行。
我编辑了上面的原始帖子,并在最后添加了完整的错误消息。
【参考方案1】:
您的回溯显示文件C:\Users\User1\miniforge3\envs\gnuradio\lib\site-packages\gnuradio\qtgui\range.py
有这一行:
self.setRange(0, ranges.nsteps - 1)
但是当我检查这个项目的存储库时here 我看到了
self.setRange(0, int(ranges.nsteps - 1))
他们纠正了一个错误。您正在使用该项目的过时版本。
【讨论】:
我仅在 2 天前从 Conda 安装了这个。如果我使用 Conda 更新命令会带来错误修复吗? 我将现有的 range.py 替换为您在存储库中确定的已修复错误的文件。我不得不将第 12 行,即@PY_QT_IMPORT@
替换为我原始文件中的第 12 行,from PyQt5 import Qt, QtCore, QtWidgets
。现在应用程序和滑块可以工作了。
@marcus-müller,正如我上面提到的,在我们交换之后,我在 11 月 20 日星期六安装的 Conda 出现了这个问题。您为我确定的 Conda 说明强烈建议识别错误。我想这样做,但不确定@Passerby 识别的文件如何与 Conda 安装相结合,或者该错误是否已在 Conda 中连接。其次,有没有办法更新我的 Conda 安装并修复此错误? Conda 指令表明命令conda upgrade --all
只会更新非Python 包。以上是关于带有滑块的 GRC QT GUI 范围出现错误的主要内容,如果未能解决你的问题,请参考以下文章