为什么PyQt5给我这个TypeError

时间:2016-01-26 16:31:48

标签: python qt pyqt

代码:

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'

我想编写一个可以管理我的操作系统剪贴板数据的程序。

我该如何处理错误?

2 个答案:

答案 0 :(得分:0)

基于documentation,似乎.text(...)的第一个参数需要是一个unicode对象!如果您只是尝试指定模式,请将(mode = yourmode)关键字添加到方法调用中。

答案 1 :(得分:0)

这是一个基本的python错误,它与PyQt无关。回溯消息说明:

    first argument of unbound method must have type 'QClipboard'

这告诉您text()不是静态方法,因此期望QClipboard的实例为第一个参数(即self)。因此,您无法通过类对象直接调用QClipboard的任何方法 - 您必须使用实例。

QClipboard的文档明确了如何使用它:

   QGuiApplication.clipboard().text()

请注意,QGuiApplication.clipboard() 是一种静态方法,因此您可以直接在类对象上调用它。