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)。 –