2
我最近更新了Python的Qt5的新版本。这样做,我一直不得不根据已经发生的一些显着变化来改变我的代码。我想了解一下我创建的这行代码。这感觉就像是解决从函数中获取string
而不是tuple
的问题的一种肮脏的方式。 (注意[0]
在该行的结尾)QtWidgets.QFileDialog.getOpenFileName返回一个Tuple
filename = QtWidgets.QFileDialog.getOpenFileName(None, "Open " + key + " Data File", '.', "(*.csv)")[0]
我想filename = {str}'C:/.././.../format.csv'
不filename = <class 'tuple'>: ('C:/.././.../format.csv', '(*.csv)')
丢弃我不明白这是为什么的Qt4和QT5之间的差异。我使用Qt4,函数'QFileDialog.getOpenFileName'总是返回一个元组,而不是一个字符串。您无法控制该函数返回的内容。文件名是元组的第一个元素,你必须以某种方式访问它。这有什么肮脏的? –
想知道最后放置[0]是否在编程上是正确的,或者实际上是否有更好的解决方案。就像一个参数,我应该放在函数内部。 – tisaconundrum
@PaulCornelius这可能是一个相对于API1 API2变化为[这里](https://forum.qt.io/topic/757/pyside-qfiledialog-getopenfilename-returns-string-of-tuple-instead-of-讨论只是字符串)和[这里](https://srinikom.github.io/pyside-bz-archive/343.html)。 –