【问题标题】:GRC QT GUI Range with slider presents error带有滑块的 GRC QT GUI 范围出现错误
【发布时间】: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 块中?)来尝试你的建议。
  • 请提供完整的错误信息,应该是几行。
  • 我编辑了上面的原始帖子,并在最后添加了完整的错误消息。

标签: python qt gnuradio gnuradio-companion


【解决方案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 包。
猜你喜欢
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-28
  • 2013-02-19
  • 2023-03-22
相关资源
最近更新 更多