我正在使用PyQT4开发一个GUI对话框,其中导入一些数据到Pandas DataFrame并将数据绘制到嵌入的Matplotlib画布上。
我想将DataFrame中的变量列表传递给组合框。我的第一次尝试是:
但是运行这个程序后,我得到了:
我曾经看到过一些例子,其中将字典键的排序列表传递给组合框,因此我很困惑为什么不能传递列表。
本。
我想将DataFrame中的变量列表传递给组合框。我的第一次尝试是:
list = list(df.parameter,unique())
self.FirstComboBox = QtGui.QComboBox()
self.FirstComboBox.addItems(list)
但是运行这个程序后,我得到了:
TypeError: QComboBox.addItems(QStringList): argument 1 has unexpected type 'list'
我曾经看到过一些例子,其中将字典键的排序列表传递给组合框,因此我很困惑为什么不能传递列表。
本。
for channel in channels: self.MyComboBox.addItem(channel)
。不幸的是,PySide2似乎需要类似的绕过方式。特别是,在尝试将纯Python字符串序列传递给任何addItems()
方法时,都会引发“TypeError: 'PySide2.QtWidgets.QComboBox.addItems' called with wrong argument types”异常 - 这是底层绑定生成器(例如SIP、Shiboken2)的明显失败。</ugh>
- Cecil CurryOrderedDict
值的视图(即由OrderedDict.values()
方法返回的序列)传递给QComboBox.addItems()
方法。由于这个视图是一个有效的序列,这理论上应该可以工作。但它不行,因为绑定生成器似乎只支持tuple
和list
序列。在我的情况下,解决方案是将所需序列首先强制转换为tuple
:例如,self.MyComboBox.addItems(tuple(channels))
。 - Cecil Curry