gpt4 book ai didi

qt - 如何正确地将值从pyqt返回到JavaScript?

转载 作者:行者123 更新时间:2023-12-04 02:19:13 24 4
gpt4 key购买 nike

我已经在下面的答案中找到并进行了编辑。

我想将值从python代码返回到QtWebKit中的javascript上下文。到目前为止,我有一个这样的类(class):

class Extensions(QtCore.QObject):
@QtCore.pyqtSlot()
def constant_one(self):
return 1;
# ... later, in code
e = Extensions();
def addextensions():
webview.page().mainFrame().addToJavaScriptWindowObject("extensions", e);
# ...
webview.connect(webview.page().mainFrame(), QtCore.SIGNAL("javaScriptWindowObjectCleared"), addextensions)

我可以像这样从Javascript调用此函数:
var a = extensions.constant_one();

它确实被调用了(我在那里验证了打印);但是a最终仍未定义。为什么没有从函数返回值?我也尝试过将Q包装到QVariant中,但到目前为止没有骰子。

编辑:我找到了答案。 显然,QtWebKit需要结果类型作为提示。可以将其提供给pyqtSlot-Decorator,如下所示:
class Extensions(QtCore.QObject):
@QtCore.pyqtSlot(result="int")
def constant_one(self):
return 1;

然后它可以正常工作。将其保留两天,以防有人发现我应该做的其他事情。

最佳答案

发布问题后不久,我自己找到了答案:显然,QtWebKit需要结果类型作为提示。可以将其提供给pyqtSlot-Decorator,如下所示:

class Extensions(QtCore.QObject):
@QtCore.pyqtSlot(result="int") # just int (type object) also works
def constant_one(self):
return 1;

然后它可以正常工作。

关于qt - 如何正确地将值从pyqt返回到JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6372336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com