[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    QClipboard::dataChanged() was not emitted in QtWebEngine context
From:       "Zhao Lee" <redstone-cold () 163 ! com>
Date:       2022-03-19 12:08:58
Message-ID: 1343a644.1b66.17fa214aeaf.Coremail.redstone-cold () 163 ! com
[Download RAW message or body]

[Attachment #2 (text/plain)]

QClipboard::dataChanged() was not emitted in QtWebEngine context with pyqt6 or \
pyside6, but it works fine with qt5/pyqt5, how to solve it ? Environment:

Python: 3.9.10 (tags/v3.9.10:f2f3f53, Jan 172022, 15:14:21) [MSC v.192964bit (AMD64)]
Flavor: Unknown
Executable: C:\Users\Oscar\AppData\Local\Programs\Python\Python39\python.exe
OS: Windows
Arch: x86_64
WindowsRelease: 10

> > > from PyQt6.QtCore import *
> > > QT_VERSION_STR
'6.2.3'
> > > PYQT_VERSION_STR
'6.2.3'
> > > 

from PyQt6.QtCore import *
from PyQt6.QtCore import pyqtSlot as Slot
from PyQt6.QtCore import pyqtSignal as Signal
from PyQt6.QtGui import *
from PyQt6.QtWidgets import *
from PyQt6.QtWebEngineWidgets import *
from PyQt6.QtWebEngineCore import *
import sys


classWebEngineView(QWebEngineView):  #

    def __init__(self, parent=None):
        super().__init__(parent)
        self.page().settings().setAttribute(QWebEngineSettings.WebAttribute.JavascriptCanAccessClipboard, \
True)  self.load(QUrl('https://doc.qt.io/qt-6/qwebenginesettings.html'))
        self.clipboard = QGuiApplication.clipboard()
        self.clipboard.dataChanged.connect(self.clipboardTextChanged)

    @Slot()
    def clipboardTextChanged(self):
        self.copiedText = self.clipboard.text()

        print(self.sender(), self.copiedText)


if __name__ == "__main__":

    app = QApplication(sys.argv)
    webEngineView = WebEngineView()
    webEngineView.show()
    sys.exit(app.exec())


[Attachment #3 (text/html)]

<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><p \
style="margin-top: 0px; margin-right: 0px; margin-bottom: var(--s-prose-spacing); \
margin-left: 0px; padding: 0px; border: 0px; font-variant-numeric: inherit; \
font-variant-east-asian: inherit; font-stretch: inherit; line-height: inherit; \
font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, \
&quot;Liberation Sans&quot;, sans-serif; font-size: 15px; vertical-align: baseline; \
box-sizing: inherit; clear: both; color: rgb(35, 38, 41);"><code style="margin: 0px; \
padding: 2px 4px; border: 0px; font-style: inherit; font-variant: inherit; \
font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: \
var(--ff-mono); font-size: 13px; vertical-align: baseline; box-sizing: inherit; \
background-color: var(--black-075); white-space: pre-wrap; color: var(--black-800); \
border-radius: 3px;">QClipboard::dataChanged()</code>&nbsp;was not emitted in \
QtWebEngine context with pyqt6 or pyside6, but it works fine with qt5/pyqt5, how to \
solve it ? Environment:</p><pre class="lang-cpp s-code-block" style="margin-top: 0px; \
margin-bottom: calc(var(--s-prose-spacing) + 0.4em); padding: 12px; border: 0px; \
font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: \
inherit; line-height: 1.30769; font-family: var(--ff-mono); font-size: 13px; \
vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; \
overflow: auto; background-color: var(--highlight-bg); border-radius: 5px; color: \
var(--highlight-color); overflow-wrap: normal;"><code class="hljs language-cpp" \
style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: \
inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; \
font-family: inherit; vertical-align: baseline; box-sizing: inherit; \
background-color: transparent; white-space: inherit;">Python: <span \
class="hljs-number" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-namespace);">3.9</span><span class="hljs-number" \
style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: \
inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; \
font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-namespace);">.10</span> (tags/v3<span class="hljs-number" \
style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: \
inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; \
font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-namespace);">.9</span><span class="hljs-number" style="margin: 0px; \
padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: \
inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; \
vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-namespace);">.10</span>:f2f3f53, Jan <span class="hljs-number" \
style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: \
inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; \
font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-namespace);">17</span> <span class="hljs-number" style="margin: 0px; \
padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: \
inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; \
vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-namespace);">2022</span>, <span class="hljs-number" style="margin: \
0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; \
font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: \
inherit; vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-namespace);">15</span>:<span class="hljs-number" style="margin: 0px; \
padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: \
inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; \
vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-namespace);">14</span>:<span class="hljs-number" style="margin: 0px; \
padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: \
inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; \
vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-namespace);">21</span>) [MSC v<span class="hljs-number" \
style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: \
inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; \
font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-namespace);">.1929</span> <span class="hljs-number" style="margin: \
0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; \
font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: \
inherit; vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-namespace);">64</span> <span class="hljs-built_in" style="margin: \
0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; \
font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: \
inherit; vertical-align: baseline; box-sizing: inherit; color: \
                var(--highlight-literal);">bit</span> (AMD64)]
Flavor: Unknown
Executable: C:\Users\Oscar\AppData\Local\Programs\Python\Python39\python.exe
OS: Windows
Arch: x86_64
WindowsRelease: <span class="hljs-number" style="margin: 0px; padding: 0px; border: \
0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit; color: var(--highlight-namespace);">10</span>

&gt;&gt;&gt; from PyQt6.QtCore <span class="hljs-keyword" style="margin: 0px; \
padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: \
inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; \
vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-keyword);">import</span> * &gt;&gt;&gt; QT_VERSION_STR
<span class="hljs-string" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-variable);">'6.2.3'</span> &gt;&gt;&gt; \
PYQT_VERSION_STR <span class="hljs-string" style="margin: 0px; padding: 0px; border: \
0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit; color: var(--highlight-variable);">'6.2.3'</span> &gt;&gt;&gt; 
</code></pre><hr style="box-sizing: inherit; border: 0px; color: var(--black-100); \
background-color: var(--black-100); height: 1px; margin-bottom: \
var(--s-prose-spacing); font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe \
UI&quot;, &quot;Liberation Sans&quot;, sans-serif; font-size: 15px;"><pre \
class="lang-cpp s-code-block" style="margin-top: 0px; margin-bottom: 0px; padding: \
12px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; \
font-stretch: inherit; line-height: 1.30769; font-family: var(--ff-mono); font-size: \
13px; vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; \
overflow: auto; background-color: var(--highlight-bg); border-radius: 5px; color: \
var(--highlight-color); overflow-wrap: normal;"><code class="hljs language-cpp" \
style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: \
inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; \
font-family: inherit; vertical-align: baseline; box-sizing: inherit; \
background-color: transparent; white-space: inherit;">from PyQt6.QtCore <span \
class="hljs-keyword" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-keyword);">import</span> * from PyQt6.QtCore <span \
class="hljs-keyword" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-keyword);">import</span> pyqtSlot as Slot from \
PyQt6.QtCore <span class="hljs-keyword" style="margin: 0px; padding: 0px; border: \
0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit; color: var(--highlight-keyword);">import</span> pyqtSignal as \
Signal from PyQt6.QtGui <span class="hljs-keyword" style="margin: 0px; padding: 0px; \
border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; \
font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: \
baseline; box-sizing: inherit; color: var(--highlight-keyword);">import</span> * from \
PyQt6.QtWidgets <span class="hljs-keyword" style="margin: 0px; padding: 0px; border: \
0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit; color: var(--highlight-keyword);">import</span> * from \
PyQt6.QtWebEngineWidgets <span class="hljs-keyword" style="margin: 0px; padding: 0px; \
border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; \
font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: \
baseline; box-sizing: inherit; color: var(--highlight-keyword);">import</span> * from \
PyQt6.<span class="hljs-function" style="margin: 0px; padding: 0px; border: 0px; \
font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit;">QtWebEngineCore <span class="hljs-keyword" style="margin: 0px; \
padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: \
inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; \
vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-keyword);">import</span> * <span class="hljs-keyword" style="margin: \
0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; \
font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: \
inherit; vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-keyword);">import</span> sys


<span class="hljs-keyword" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-keyword);">class</span> <span class="hljs-title" \
style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: \
inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; \
font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-literal);">WebEngineView</span><span class="hljs-params" \
style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: \
inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; \
font-family: inherit; vertical-align: baseline; box-sizing: \
inherit;">(QWebEngineView)</span>:  #

    def __init__(self, parent=</span>None):
        <span class="hljs-built_in" style="margin: 0px; padding: 0px; border: 0px; \
font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit; color: \
var(--highlight-literal);">super</span>().__init__(parent)  self.<span \
class="hljs-built_in" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-literal);">page</span>().<span class="hljs-built_in" \
style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: \
inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; \
font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-literal);">settings</span>().<span class="hljs-built_in" \
style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: \
inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; \
font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-literal);">setAttribute</span>(QWebEngineSettings.WebAttribute.JavascriptCanAccessClipboard, \
True)  self.<span class="hljs-built_in" style="margin: 0px; padding: 0px; border: \
0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit; color: var(--highlight-literal);">load</span>(<span \
class="hljs-built_in" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-literal);">QUrl</span>(<span class="hljs-string" \
style="margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: \
inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; \
font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-variable);">'https://doc.qt.io/qt-6/qwebenginesettings.html'</span>)) \
self.clipboard = QGuiApplication.<span class="hljs-built_in" style="margin: 0px; \
padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: \
inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; \
vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-literal);">clipboard</span>()  self.clipboard.dataChanged.<span \
class="hljs-built_in" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-literal);">connect</span>(self.clipboardTextChanged)

    @<span class="hljs-built_in" style="margin: 0px; padding: 0px; border: 0px; \
font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit; color: var(--highlight-literal);">Slot</span>()  def <span \
class="hljs-built_in" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-literal);">clipboardTextChanged</span>(self):  \
self.copiedText = self.clipboard.<span class="hljs-built_in" style="margin: 0px; \
padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: \
inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; \
vertical-align: baseline; box-sizing: inherit; color: \
var(--highlight-literal);">text</span>()

        <span class="hljs-built_in" style="margin: 0px; padding: 0px; border: 0px; \
font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit; color: var(--highlight-literal);">print</span>(self.<span \
class="hljs-built_in" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-literal);">sender</span>(), self.copiedText)


<span class="hljs-keyword" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-keyword);">if</span> __name__ == <span \
class="hljs-string" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-variable);">"__main__"</span>:

    app = <span class="hljs-built_in" style="margin: 0px; padding: 0px; border: 0px; \
font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit; color: var(--highlight-literal);">QApplication</span>(sys.argv)  \
webEngineView = <span class="hljs-built_in" style="margin: 0px; padding: 0px; border: \
0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit; color: var(--highlight-literal);">WebEngineView</span>()  \
webEngineView.<span class="hljs-built_in" style="margin: 0px; padding: 0px; border: \
0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: \
inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; \
box-sizing: inherit; color: var(--highlight-literal);">show</span>()  sys.<span \
class="hljs-built_in" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-literal);">exit</span>(app.<span \
class="hljs-built_in" style="margin: 0px; padding: 0px; border: 0px; font-style: \
inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; \
line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: \
inherit; color: var(--highlight-literal);">exec</span>())</code></pre></div><br><br><span \
title="neteasefooter"><p>&nbsp;</p></span>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic