GNU Radio 3.9.4.0 QT GUI Range设Counter+Slider报类型错误如何解决
问题原因
GNU Radio Companion 3.9.4.0版本的QT GUI Range模块的Counter+Slider部件存在已知类型兼容bug:滑块控件的setRange方法要求传入两个整数参数,但模块代码中计算的ranges.nsteps为浮点类型,未做整数转换,因此触发类型错误。纯Counter模式不需要调用滑块的setRange方法,所以不会报错。
解决方法
方案1:修改GRC模块配置(无需改动源码,优先尝试)
- 打开对应
QT GUI Range模块的配置界面 - 关闭步数自动计算选项,手动将「Num Steps(步数)」参数设置为整数,不要填写带小数的数值,也不要留空由系统自动计算
- 确认步进参数和总步数匹配,比如增益范围0~40dB、步进1dB时,步数填41即可
方案2:修复本地源码(一劳永逸)
- 打开报错日志中指向的range.py文件,路径为
C:\Users\User1\miniforge3\envs\gnuradio\lib\site-packages\gnuradio\qtgui\range.py - 定位到第161行的代码:
self.setRange(0, ranges.nsteps - 1)
- 修改为如下内容,给第二个参数添加强制整数转换:
self.setRange(0, int(ranges.nsteps - 1))
- 保存文件后重启GNU Radio Companion,重新运行流图即可正常使用Counter+Slider模式
方案3:升级GNU Radio版本
该bug已在GNU Radio 3.9.5.0及后续版本被官方修复,直接升级到更高版本也可以解决问题。
内容的提问来源于stack exchange,提问作者user34299
相关产品推荐
相关产品推荐

