Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从其他程序中获取选定的文本内容_Python_Linux_Pyqt_Clipboard - Fatal编程技术网

Python 从其他程序中获取选定的文本内容

Python 从其他程序中获取选定的文本内容,python,linux,pyqt,clipboard,Python,Linux,Pyqt,Clipboard,当我使用其他程序(例如打开pdf或word)时,我会使用鼠标选择一些文本内容(如单词或段落)。我想让我的python程序得到这个文本内容。如何使用PyQt或其他Python库实现这一点?这是一项简单的任务,您尚未指定PyQt版本,因此我将发布PyQt4的解决方案,如下所示: from PyQt4.QtCore import QObject, pyqtSlot, SIGNAL, SLOT from PyQt4.QtGui import QApplication, QMessageBox impor

当我使用其他程序(例如打开pdf或word)时,我会使用鼠标选择一些文本内容(如单词或段落)。我想让我的python程序得到这个文本内容。如何使用PyQt或其他Python库实现这一点?

这是一项简单的任务,您尚未指定PyQt版本,因此我将发布PyQt4的解决方案,如下所示:

from PyQt4.QtCore import QObject, pyqtSlot, SIGNAL, SLOT
from PyQt4.QtGui import QApplication, QMessageBox
import sys


class MyClipboard(QObject):

    @pyqtSlot()
    def changedSlot(self):
        if(QApplication.clipboard().mimeData().hasText()):
            QMessageBox.information(None, "Text has been copied somewhere!",
                                    QApplication.clipboard().text())


def main():
    app = QApplication(sys.argv)
    listener = MyClipboard()

    app.setQuitOnLastWindowClosed(False)
    QObject.connect(QApplication.clipboard(), SIGNAL(
        "dataChanged()"), listener, SLOT("changedSlot()"))

    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

请阅读。很好,谢谢你的帮助,我已经在我的电脑上运行了你的代码。我只想选择word而不是选择word并复制它(ctrl+v)。所以,我认为使用系统剪贴板不是一个好的解决方案。