2016-01-26 24 views
2

代碼:爲什麼PyQt5給我這個類型錯誤

from PyQt5 import QtWidgets 
from PyQt5.QtGui import QClipboard, QGuiApplication 

text = QClipboard.text(QClipboard.Clipboard) 

和錯誤信息:

TypeError: arguments did not match any overloaded call: 
QClipboard.text(QClipboard.Mode mode=QClipboard.Clipboard): first argument of unbound method must have type 'QClipboard' 
QClipboard.text(str, QClipboard.Mode mode=QClipboard.Clipboard) -> (str, str): first argument of unbound method must have type 'QClipboard' 

我想寫可以管理我的OS剪貼板中的數據的程序。

我應該如何處理這個錯誤?

回答

0

基於documentation,它似乎是.text(...)的第一個參數需要是一個unicode對象!如果您只是試圖指定模式,請將(mode = yourmode)關鍵字添加到方法調用中。

+0

我改變了這樣的代碼:'mode = QClipboard.Clipboard text = QClipboard.text(mode = mode)',但也得到相同的錯誤 – LWH

0

這是一個基本的python錯誤,與PyQt無關。回溯消息指出:

first argument of unbound method must have type 'QClipboard' 

這是告訴你,text()不是靜態方法,因此它期待的QClipboard實例作爲第一個參數(即self)。所以你不能直接通過類對象調用QClipboard的任何方法 - 你必須使用一個實例。

QClipboard文檔清楚應該如何使用:

QGuiApplication.clipboard().text() 

並注意QGuiApplication.clipboard()一個靜態方法,所以你可以直接調用它的類對象上。

+0

非常感謝:) – LWH

相關問題