Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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 QApplication.clipboard().dataChanged无法在后台工作_Python_Pyqt_Clipboard - Fatal编程技术网

Python QApplication.clipboard().dataChanged无法在后台工作

Python QApplication.clipboard().dataChanged无法在后台工作,python,pyqt,clipboard,Python,Pyqt,Clipboard,我正在尝试编写一个字典程序,当我将一些单词复制到剪贴板时,它可以自动搜索单词。 我需要该程序来检测剪贴板的变化,并在后台搜索。(菜单栏应用程序) 但我的程序只有在我点击时才会更新。 (例如,在Mac OS全屏模式下不使用) 即使是在后台,也有办法让程序工作吗 mac os catalina,PYQT5 我使用QApplication.clipboard().dataChanged.connect()来检测剪贴板的更改 类MyMainWindow(QMainWindow、Ui\u MainWind

我正在尝试编写一个字典程序,当我将一些单词复制到剪贴板时,它可以自动搜索单词。 我需要该程序来检测剪贴板的变化,并在后台搜索。(菜单栏应用程序) 但我的程序只有在我点击时才会更新。 (例如,在Mac OS全屏模式下不使用) 即使是在后台,也有办法让程序工作吗

mac os catalina,PYQT5

我使用QApplication.clipboard().dataChanged.connect()来检测剪贴板的更改

类MyMainWindow(QMainWindow、Ui\u MainWindow):
def uuu init uuu(self,parent=None):
超级(MyMainWindow,self)。\uuuuu初始化\uuuuuuu(父级)
self.setupUi(self)
QApplication.clipboard().datachange.connect(self.clipboardChange)
def剪贴板更改(自身):
打印(QApplication.clipboard().text())
自我提升()
在主文件中:

如果名称=“\uuuuu main\uuuuuuuu”:
app=QApplication(sys.argv)
#app.setQuitOnLastWindowClosed(False)
图标=QIcon(“dic.png”)
托盘=QSystemTrayIcon()
托盘.设置图标(图标)
tray.setVisible(真)
#menu=QMenu()
action=QAction(“菜单项”)
#菜单.添加操作(操作)
#tray.setContextMenu(菜单)
myWin=MyMainWindow()
myWin.show()
sys.exit(app.exec_())

仅当我单击该程序时才更新它

Qt仅在GUI可见时接收操作系统事件,如果GUI不可见,则不会通知它。如果要在应用程序不可见时检测操作系统事件,则必须使用操作系统库。@eyllanesc应注意,“后台”操作系统事件检测取决于系统和功能。在这种特定情况下,MacOS上的剪贴板也是如此,而在Linux和Windows上,即使应用程序不是活动的,剪贴板也可以工作。